Commit Graph
380 Commits
Author SHA1 Message Date
Rohit C Prasad 1e564d56eb request_tool: non-catalog names never raise the install card
Fast-fail with a shell steer before any prompt; docstring names the closed catalog
and stops citing semgrep (pip/brew, deliberately unmanaged) as an example.
2026-08-20 22:14:02 -07:00
Rohit C Prasad 3fc782edd7 Security personas: report pages go to the scratch directory, not the audited repo 2026-08-20 21:59:24 -07:00
Rohit C Prasad 4406068629 Files explorer over session roots (UX-037)
More fold gains a Files section listing workspace/scratch/granted roots.
Roots open in the artifact viewer (Files breadcrumb); folder click-through was already there.
2026-08-20 21:56:09 -07:00
Rohit C Prasad ebb97d7643 Root promotion: request_directory gains primary; granted folder can become the workspace
One-way, once, scratch-primary sessions only; consent card says workspace.
Live roots + shell repoint, persisted; engine rebuilds fully anchored after the turn.
2026-08-20 21:37:39 -07:00
Rohit C Prasad 65c568cd44 Universal scratch: every session gets a scratch root; Artifacts panel everywhere
Gated sessions run workspace+scratch dual-root; artifact listing scans scratch only.
Artifact chips resolve across workspace, scratch, and granted roots; request_directory registers for all sessions.
2026-08-20 21:28:52 -07:00
Rohit C Prasad 1299760400 Personas: requires_folder/subagents/scheduling traits replace family and the workspace enum
Manifest keeps a legacy family shim; telemetry wire fields unchanged.
No behavior change; spec in ocw-context/docs/workspace-scratch-design.md.
2026-08-20 21:19:56 -07:00
Rohit C Prasad 9735d0c6e7 e2e: repair specs broken by the shipping lineup
Folder-gate and picker specs drive Security Coworker (Code ships disabled).
Automations detail opens via the nav row (account-menu entry removed).
2026-08-20 21:19:50 -07:00
Rohit C Prasad f25fbd4036 Rail: solo sessions get Progress back (empty team object misread as lead); drop Gallery entry point 2026-08-20 18:44:35 -07:00
Rohit C Prasad f29e082c86 Coworkers list: group spacing, Default pill replaces star/toggle on the default row 2026-08-20 18:37:34 -07:00
Rohit C Prasad 78b0f488c4 Coworkers pages redesigned: grouped list, one toggle per row, detail overhaul
List groups General/Security with quiet disclosures for unshipped coworkers and the installer (native pickers for folder/zip); gallery is internal-build only.
Detail: markdown About with bundle screenshot carousel, one Connectors table (Status/Enable), tool calls collapsed under Advanced, management controls moved here.
2026-08-20 18:17:10 -07:00
Rohit C Prasad 19e10f0e76 Shipping lineup: remove Chat, ship Code disabled, gate unshipped personas
Manifests carry ships/group; release builds hide ships:false coworkers (OPENWORKER_UNSHIPPED=1 restores them).
Persona detail serves bundle media; staffing gate reads the registry, not the filtered list.
2026-08-20 17:59:48 -07:00
Rohit Prasad 735486ac14 Merge pull request #530 from andrewyng/rp/mcp-add-test
Custom MCP servers on the Connectors page, with add and test flow
2026-08-20 16:34:06 -07:00
Rohit C Prasad ff78ea9f35 Chrome cleanup: menu dedup, implicit cloud label, Context optimization section
Account menu drops Automations (sidebar nav has it) and the OpenWorker Cloud suffix.
Token savings + compaction move from Models to a new Settings - Context optimization tab.
Coworkers page loses its duplicate intro line.
2026-08-20 16:33:36 -07:00
Rohit C Prasad db4b31afb4 Drop local dev launch config from branch 2026-08-20 16:22:48 -07:00
Rohit C Prasad 2414b4a215 Retire MCP tab: custom servers live on the Connectors page
Custom - MCP group after Connected; Add custom server modal at top; per-server detail subpage with Test.
Status never claims connected for stdio: Live / Ready + persisted tested-at / Not tested / Needs sign-in / Error.
2026-08-20 16:22:41 -07:00
Rohit C Prasad 0f68852cbf Drop stray root vitest cache from branch 2026-08-20 13:50:23 -07:00
Rohit C Prasad 5ebaa376d7 Add MCP server flow: Remote URL + JSON tabs, Test connection
Explicit connect reports stderr tails; a 401 on an anonymous http probe becomes needs-sign-in with a one-click OAuth switch.
Test button probes any enabled server row without opening a session.
2026-08-20 13:50:13 -07:00
Rohit Prasad 8e71256ede Merge pull request #528 from andrewyng/rp/mcp-failure-surfacing
Surface MCP server startup failures
2026-08-20 13:05:47 -07:00
Rohit C Prasad ead7d9e2a6 Drop accidental node_modules symlink from branch 2026-08-20 12:53:00 -07:00
Rohit C Prasad b0d2bbd183 Surface MCP server startup failures
Capture stdio stderr tail; record generic connect errors for /v1/mcp (status=error);
persistent session notice via mcp_error; tests for client, manager, and GUI mapping.
2026-08-20 12:52:31 -07:00
Devika Verma 9ac59aafe3 Merge branch 'main' of https://github.com/andrewyng/openworker into feature/permission-modes
# Conflicts:
#	tests/test_openai_responses.py
2026-08-20 09:01:15 +05:30
Devika Verma 7be4cda8c7 Keep the reviewer corpus to rows the gate actually sends there 2026-08-19 21:53:26 +05:30
Devika Verma cba686a6b9 Gate contact-enrichment lookups as egress 2026-08-19 21:41:58 +05:30
Devika Verma 8e6a43f296 OPE-124: check the address a browser navigation actually lands on 2026-08-19 19:34:17 +05:30
Devika Verma 52060683d4 OPE-117: skills and scheduled tasks reach a human, never the reviewer 2026-08-19 19:20:09 +05:30
Devika Verma 8af72d9653 OPE-122: enforce granted roots in browser upload and screenshot 2026-08-19 19:00:50 +05:30
Devika Verma b24bb81f67 OPE-115: repoint corpus rows to real tools, add registry and schema guards 2026-08-19 18:46:21 +05:30
Devika Verma 3055a9ff3f Extend provenance to the layered corpus and guard the field-name clash 2026-08-19 18:33:57 +05:30
Devika Verma ab44e077df Add provenance corpus pair and wire it through the harness 2026-08-19 18:27:18 +05:30
Devika Verma 838eb6a783 Show file provenance on the approval card 2026-08-19 18:20:47 +05:30
Devika Verma b06a03b1b9 OPE-114: flag files the agent created or downloaded before running them 2026-08-19 18:20:47 +05:30
Rohit C Prasad 01d6ec6514 devops-lead: platform-neutral wording (doctrine in persona, deployment in OPSWATCH) 2026-08-18 22:49:28 -07:00
Rohit C Prasad 375d7b240e personas: DevOps team — standing lead + on-demand diagnosis workers
Watchman lead (observer-credential shell, case-ledger dedup, staff-on-incident);
logs/infra/change worker lanes; doctrine locked in test_devops_team.
2026-08-18 22:39:53 -07:00
Rohit C Prasad fc3aa28d9f matrix: context windows for the Ark Seed models
256K per Volcengine's published specs; drives the context-fill meter.
2026-08-18 20:49:09 -07:00
Rohit Prasad 48bfaefea1 Merge pull request #504 from fanziqingbyte/feat/ark-providers
feat: add BytePlus and Volcengine Ark providers
2026-08-18 20:47:29 -07:00
Devika Verma 6cf2b25409 Add layered security corpora (gate/reviewer/sequence, 301 rows) 2026-08-19 02:35:29 +05:30
Devika Verma 80ba13d359 OPE-111: browser URL tools are egress, not reads 2026-08-19 01:59:36 +05:30
Devika Verma af768b357f OPE-111: gate mislabeled catalog tools, floor catalog writes against relaxing overrides 2026-08-19 01:54:01 +05:30
Devika Verma e1dcdcfc59 OPE-113: fix reviewer prompt shell scoping claim 2026-08-19 01:41:37 +05:30
Devika Verma 7025aa2956 Add shell-escape corpus rows 2026-08-19 01:41:36 +05:30
Devika Verma bc862af119 Eval reports 2026-08-18: Kimi K3, GLM-5.2, Muse Spark, gpt-5.6-sol - all gates passed 2026-08-18 11:17:40 +05:30
Rohit C Prasad 097a2802ad Personas: DevSecOps team — lead + appsec/secrets/posture worker variants
Worker variants carry the solo security personas' tool bundles + skills (bundle shape).
Lead: falsifiable criteria, case-first journaling, evidence-gated review, report rollup.
2026-08-17 19:54:11 -07:00
Rohit C Prasad ce3353dab3 GUI: right-drawer restructure — Team panel, three primaries + More, board chip
Team members move from sidebar to a drawer panel; RECENT keeps one entry per team.
All sections collapsed by default; Journal/Access fold behind More; leads drop Progress.
Lead mentions the board once via a [.](board:) chip that opens the drawer.
2026-08-17 18:44:39 -07:00
Rohit C Prasad aafb4f4291 Feed model: interest follows the assignment relation; notes are pure appends
Worker delivery is now a read-time feed over its slice (assigned ∪ filed) — send-backs, comment answers, reassignments, cancels, and acceptance all arrive through one relation; per-event recipient addressing retired.
Reassignment delivers before interest ends; a new assignee replays the item's story. Detail pane gains Add a note (never changes state); external pending/consume become space-scoped feed calls.
2026-08-17 16:05:16 -07:00
Rohit C Prasad f26e01c1b6 Address action-demanding transitions to the assignee; neutral verdict label
Send-back/unblock/cancel by someone else now land in the worker's queue (only cancel did — send-backs woke nobody); done stays unaddressed.
The Request changes button drops the send-to-X phrasing — it's a board write, delivery is the queue's job.
2026-08-17 15:37:09 -07:00
Rohit C Prasad b952ed1e1e Board overlay rework: raw-state list + item detail with event timeline
Sections are the store's states (In progress / Awaiting review / Queued), no row buttons or badges; blocked rows carry the blocker fact.
Detail pane merges the item's events into one timeline (filed/assigned/moves/comments/attachments), links the assignee to its worker session, and hosts the verdicts: Mark done / Request changes… (returns to the worker with the comment).
2026-08-17 14:55:40 -07:00
Devika Verma 4cb58370a3 Merge branch 'feature/ope-101-openai-responses-token-usage' into feature/permission-modes 2026-08-17 23:01:28 +05:30
Devika Verma a990f6872f OPE-101: extract token usage in the OpenAI Responses provider
Any model routed through /v1/responses (gpt-5.6+ with tools, i.e. the
default gpt-5.6-sol) reported 0 tokens for every call: both
AssistantTurn constructions omitted usage while every sibling adapter
populated TokenUsage. First consumer to notice was the Auto-Approve
reviewer metering; the 2026-08-13 eval report printed 'Tokens: 0 in /
0 out' across ~40 live calls.

_usage_from maps the Responses shape like the Chat Completions adapter:
fresh input = input_tokens - cached_tokens (input_tokens is INCLUSIVE
of the cached share), cached share -> cache_read, output_tokens as-is
(reasoning already included). Defensive reads: compat servers may omit
input_tokens_details; a missing usage object stays None, never a fake
zero. Wired in _parse_response, which both complete() and the stream's
terminal response.completed event flow through - one extraction, both
paths.

Tests: cache split, partial/missing degradation, stream terminal event,
stream-without-terminal stays None. Verified live against gpt-5.6-sol:
call 1 'in=1820 cache_read=0', call 2 'in=3 cache_read=1817' - the
0-token era ends and the cache split reports correctly.
2026-08-17 22:57:18 +05:30
Devika Verma f589013e84 Carry cache_read/cache_write through Verdict, stats, and the eval report
Auto-caching providers (OpenAI/Together/Gemini) serve most of the
reviewer's 1,400-token prefix from cache and report the split; dropping
it made calls read as '16 in' - present-tense misreporting, not a v2
optimization (owner call 2026-08-17). Probed live: Together sends
prompt_tokens=1430 + cached_tokens=1408 OpenAI-style; the adapter
already normalized it, the Verdict just discarded it.

Verdict + reviewer.stats gain cache_read/cache_write; the eval token
line now reads 'X fresh in / Y out / Z cached in (billed ~10%) - N
input tokens actually processed'. The OPT-IN caching decision
(Anthropic cache_control, TTL economics) stays in OPE-77 - this commit
only stops lying about what already happens.
2026-08-17 22:41:03 +05:30
Devika Verma 08c3984874 Eval: distinguish error-unsure from cautious-unsure; retry, count, never pass on errors
A provider outage (Together GLM 5xx, live 2026-08-17) turned rows into
unsure verdicts indistinguishable from genuine caution - a benign gate
read FAIL and a dangerous gate would have read PASS, both meaningless.

Verdict gains error:bool - set only when the MACHINERY fails (provider
error, timeout), never on a parse defect (the model DID answer; a
contract-violating answer is a real model property the eval should see).
The live engine is unaffected: error and caution both mean card+human.

Harness: run_corpus retries an errored row once (transient 5xx must not
decide a gate), counts what remains, and a corpus with ANY error row
CANNOT pass its gate - pass means 'measured clean', and the fix for an
outage is re-run, not certify-through-it. Report gains an Errors column
and lists the errored ids. Tests cover the retry, the error-count, and
the can-never-pass rule.
2026-08-17 21:59:36 +05:30