Commit Graph
193 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 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 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 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
Rohit C Prasad b2418d5a30 Drill-round polish: calm rail, digest diet, gate replies, criteria clamp, composer fix
Rail shows active work only (finished behind a count); wake digests clamp hand-offs and ride a collapsed BoardWakeCard.
Typing while a proposal gate is pending resolves it as decline-with-feedback; essay criteria clamp in the gate card.
Composer autogrow now counts padding in its cap (first line no longer clips); lead/worker prompts push tight criteria and hand-offs.
2026-08-17 08:54:53 -07:00
Rohit C Prasad 880c7859bd Work-item image attachments: content-addressed store + attach on every front door
Blobs live in state-dir attachments/ (sha256-named); the log carries only attachment:// refs on a normal comment event.
Attach authority = comment authority; images-only allowlist with magic-byte check, 10MB cap; in-app tool + API + CLI + MCP.
2026-08-16 18:34:04 -07:00
Rohit C Prasad f10bfca9d9 Workers see the claimable pool (drill-caught)
Worker list_items was slice-only, so an unassigned external worker saw an empty board — a pull queue nobody can see.
Open+unassigned items are now visible to workers while claims are open; hidden again under lead-only.
2026-08-16 18:20:44 -07:00
Rohit C Prasad 36aa1da728 ocw CLI + team-board MCP server on stdio
ocw board/journal verbs with server auto-discovery (remote-first; direct SQLite only headless).
ocw board mcp serves the role-scoped toolset to external harnesses; 21 tests incl. both dialects over the real app.
2026-08-16 17:48:30 -07:00
Rohit C Prasad cca8d7c01e Board as an open surface: BoardDialect seam, join tokens, /v1/board API
Local (direct stores) and remote (one wire protocol) dialects; trackers become mirrors later, never dialects.
Tokens bind actor+role server-side (sha256-stored); board routes carry their own auth, external writes kick the wake tick.
2026-08-16 17:48:30 -07:00
Rohit C Prasad 9f6a3d3833 Board claims: store-stamped self-assignment + claims policy knob (OPE-100)
Claim wins by first write under the store lock; lead supervises by exception via its digest.
Policy claims: open (default) | lead-only; per-item reservation = lead assigns itself.
2026-08-16 17:48:22 -07:00
Rohit C Prasad 2e18d9d5c4 Lead cadence: mandatory check-in timer, harness backstop, sleeping strip
The lead must end active turns with a sleep_for (3-5m, stretch when quiet); a 10-minute backstop wakes a lead that forgot while work is in flight.
Sleeping sessions show a strip with the next wake time and an Ask-for-a-status action — a scheduled agent never reads as a dead one.
2026-08-16 17:00:51 -07:00
Rohit C Prasad d0fdcb032e Chat replaces the session view in place — not a modal; sidebar stays live 2026-08-16 16:39:18 -07:00
Rohit C Prasad cf436d1069 # team chat: own chat store, named workers, mention wakes, cancel interrupt (OPE-99)
ChatStore = groups + append-only messages + per-member cursors; agent posts wake mentions only, user posts wake everyone; post_chat(record_on_item) also lands the answer as an item comment.
Leads name workers (the callname is the handle everywhere); worker digests auto-carry the roster; gate checkbox is the user's call; canceling an assigned item now interrupts an in-flight worker.
2026-08-16 16:22:23 -07:00
Rohit C Prasad 844a6510a2 Dogfood round 1: propose_work_items gate, team-tie survives turn saves, board wakes render as cards
Leads lose propose_plan (trait-derived exclusion — plan mode is meaningless without execution tools) and gain propose_work_items: mode-independent decomposition whose approval creates the items.
Team field moves off the turn-save upsert to a dedicated setter (workers detached from their lead after one turn); board deliveries carry a MessageSource sidecar; test-worker prefers project-local tool installs.
2026-08-16 15:43:06 -07:00
Rohit C Prasad 13f9c0b6c0 SW team: staffing gate UI, expandable team entry, four team personas (OPE-97/98)
swe-lead (minimal tools, coordination verbs) + swe/design/test workers with the shared worker contract; workers never surface in the picker — they're staffed, not started.
Staffing card rides the approval slot; workers nest under the lead's ONE expandable RECENT entry in both sidebar layouts.
2026-08-16 08:53:26 -07:00
Rohit C Prasad 3e4fafead0 Team wake plumbing: trait-gated verbs, durable queues, staffing gate, digests (OPE-97)
team: manifest trait gates lead/worker toolsets; propose_team pre-spawns worker sessions on approval (fail closed on solo personas).
Deliveries + lead subscriptions are cursor-consumed projections; turns end with a queue kick, ticks replay; timer wakes carry the code-computed staleness digest; hourly wake cap is the budget gate.
2026-08-16 08:37:07 -07:00
Rohit C Prasad fc24b667ed Drop the proposed state: boards hold only accepted work
Plan proposals live in the conversation (plan-approval flow); items are created open/unassigned and work starts at assignment — the granted, revocable authority.
Also closes a verify gap: tail truncation is now caught against the stored head hash.
2026-08-16 08:07:10 -07:00
Rohit C Prasad d8e4fc73c0 Rail collapses proposed items to one awaiting-approval line
The plan gate is the single full rendering of the proposal; no double listing.
2026-08-16 07:50:02 -07:00
Rohit C Prasad 2ebc5fd7aa Progress rail section starts collapsed; auto-opens once when a live turn has todos 2026-08-16 07:49:08 -07:00
Rohit C Prasad 4c1b542370 Board UI: rail section, plan gate, expanded overlay, journal cases (OPE-96)
Board+journal endpoints act as the user; sessions get lead verbs behind OPENWORKER_TEAM_BOARD=1 until the team trait lands.
Rail hides all team chrome until the workspace has items; expand opens a full-width state-column board.
2026-08-16 07:11:52 -07:00
Rohit C Prasad 054f807d4e Journal refs are plain pointers — no checksum ceremony for agents
Tamper-evidence stays internal to the stores; agents just reference files.
2026-08-16 06:55:29 -07:00
Rohit C Prasad 1d12fe96d2 Journal splits from the board: case-keyed store, grants ride assignment
Cases outlive boards/teams, so entries+per-case chains move to journal.db with a grant table (creator-on-attach, assignment-fed, explicit shares).
Adds the raw capture kind: excerpt inline under a body cap, full payload as a sha256-referenced artifact; reads skip raw unless asked.
2026-08-16 06:44:20 -07:00
Rohit C Prasad cbf30b8d65 Workers may file work items; new items always land in the proposed gate
Worker slice now includes items it created, so a filed follow-up stays visible to its author.
2026-08-16 06:19:55 -07:00
Rohit C Prasad 5c00cdfee4 Work items carry artifact refs; they ride transition and comment
Refs (branch, PR, report, session) accumulate deduped on the item via the projection fold, so rebuild reproduces them.
2026-08-15 22:52:44 -07:00
Rohit C Prasad 48f3021843 Agent teams: event store, work items, board verbs, journal (OPE-95)
One hash-chained append-only log; board, journal, and per-agent deliveries are projections (rebuild == replay).
Six board verbs + journal verbs with role authority; worker slice and case access ride assignment.
2026-08-15 22:50:24 -07:00
Rohit C Prasad 8e2058d2a9 Artifact chip opens the viewer first-click even when the rail is hidden
The select-listener was gated on rail visibility, so the chip's one event only
unhid an empty rail; now it listens whenever a session is active.
2026-08-15 14:11:16 -07:00
Rohit C Prasad 44e0e8566f OpenAI-compatible path names an output ceiling instead of trusting server defaults
max_tokens defaults to 32k (compat servers were capping at ~2k, truncating file
writes); a below-limit model 400 drops the param and retries on the server default.
2026-08-15 13:47:34 -07:00
Rohit C Prasad a591f5b35c Request cards join the 760px composer column
dirreq-card (tool/directory/plan cards) went full-bleed on wide monitors.
2026-08-15 12:51:39 -07:00
Rohit C Prasad 0a18d72657 Access drawer and inbound gate honor the persona connector grant
effective_connectors intersects the declared allowlist, so the drawer no longer
renders undeclared connectors as live sources and inbound delivery is gated too.
Builder-based builtins (no manifest) stay unrestricted for channel bindings.
2026-08-15 10:51:46 -07:00
Rohit C Prasad 78fc2bd8f7 Artifact viewer: airtight sandbox for agent HTML + Open in browser (OPE-91)
Drop allow-same-origin (srcDoc ran the page same-origin with the privileged
webview) and inject a no-network CSP so a poisoned report can't exfiltrate at
display time. Inline script/style keep working; system browser is the escape hatch.
2026-08-15 10:38:58 -07:00
Rohit C Prasad 4ed112b8eb Connectors become a per-coworker allowlist (OPE-93)
Sessions expose declared-and-connected only; 'all' is builtin-only; legacy true
migrates to the recommended refs, else nothing. Consent lists real names and
per-connector caps force re-consent when an update widens the grant.
2026-08-15 10:34:43 -07:00
Rohit C Prasad 5f2eeca1c8 Diagnose truncated tool calls instead of executing their mangled args
Unparseable (_raw) args now get a truthful error: cut-off-by-output-limit says
'smaller pieces', bad JSON says 're-send with declared parameters'. Raw junk is
shrunk before entering history so replays can't teach the model the _raw shape.
Anthropic default max_tokens 16k -> 32k so typical report files fit outright.
2026-08-15 06:55:10 -07:00
Rohit C Prasad 560fc3cb8a Tool-request card speaks plainly; declining re-checks for a user-installed copy
Fact strip: 'OpenWorker installs its own verified copy from <publisher>' replaces
supply-chain jargon. On decline the engine re-resolves — a copy the user installed
themselves is handed to the agent as theirs, not treated as a refusal.
2026-08-15 00:14:15 -07:00
Rohit C Prasad b022e58d07 Label the coworker's justification on the tool-request card
A bare floating quote made readers infer what it was; 'Reason:' says it.
2026-08-14 23:55:00 -07:00
Rohit C Prasad 8e77d61aa1 Tool-request card: separate the product's facts from the coworker's ask
Registry metadata (version, publisher, checksum) moves to a distinct fact strip.
Decline button renamed to say the run continues; reason capped to one sentence.
2026-08-14 23:50:51 -07:00