Commit Graph
177 Commits
Author SHA1 Message Date
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
Rohit C Prasad b866157778 Managed tools land on the persistent shell's PATH
install() links binaries into a stable tools/bin dir; LocalExecutor appends it
at spawn, so a mid-session install works by name without a respawn.
2026-08-14 23:50:51 -07:00
Rohit C Prasad 25d32891d3 Tool-request prompts fail closed on installability
TOOL_REQUESTED now carries the registry's verdict (installable/version/summary).
GUI offers Install only when the event says a pinned build exists.
2026-08-14 23:25:21 -07:00
Rohit C Prasad c041ed64a5 Pin trivy in the managed registry; retire tfsec from cloud-posture
trivy 0.74.0 pinned with per-platform digests so request_tool can install it.
tfsec is deprecated upstream; the bundle now drives trivy config instead.
2026-08-14 23:25:21 -07:00
Rohit C Prasad cf0edbf9c5 security bundles: offer a self-contained findings report page
Ask with ask_user before building it; page inherits the evidence, coverage and
no-secrets rules.
2026-08-14 20:35:48 -07:00
Rohit C Prasad 62ad9dbdca tools: give coworkers the user's real toolchain, and stop silent skips
Sidecar inherits the login shell's env; toolchain resolves absolute paths with pinned
installs; request_tool replaces the 'tool missing -> STOP' instruction that hid a check.
2026-08-14 15:28:57 -07:00
Rohit C Prasad 49c16af076 gui: reload coworkers after health, not only at mount
The mount-time persona fetch loses the race to the sidecar boot, leaving the
composer picker empty all session while Settings looked fine.
2026-08-13 16:47:11 -07:00
Rohit C Prasad 5f3ffe385d packaging: ship builtin persona bundles in the sidecar
collect_submodules only takes .py, so packaged builds had no builtin coworkers.
Caught by inspecting the DMG — dev installs read them from the source tree.
2026-08-13 15:46:13 -07:00
Rohit C Prasad 06a4365132 approvals: session read-only command grant; enable on consent card
'Allow read-only commands' on shell cards — fail-closed classifier (local reads + pipelines only; no network/interpreters/writes), session-scoped, persisted with grants.
Consent cards get an in-place Enable button.
2026-08-11 15:07:46 -07:00
Rohit C Prasad 110a8ae8ce personas: sharing v1 — export/import bundles, version + consent (OPE-7)
Bundle zip export + import (zip-slip guarded) through the picker's Import door; version+provenance with a replaces-note, re-consent only when capabilities grow.
Consent screen: trust warning first, capability summary with collapsed tool list, recommended connectors.
2026-08-11 12:12:24 -07:00
Rohit C Prasad b5b000eb76 personas: ship security coworker bundles (OPE-61 phase C)
Security, Cloud Posture, and Dependency Audit coworkers as self-contained bundle dirs (manifest + skills) driving OSS scanners; registry loads bundle subdirs; packaging includes them.
2026-08-11 06:20:19 -07:00
Rohit C Prasad 5ea697d384 personas: wire manifest skills + mcp into sessions (OPE-58)
Bundle skills/ dir joins the persona's session menu (additive; user disables/mutes win); manifest skills: narrows the bundle; mcp: scopes raw servers.
Install snapshot now carries the skills folder — the sharing bundle shape.
2026-08-10 22:16:38 -07:00
Rohit C Prasad 4908c8402e coworker picker: 'Use temporary folder' copy; retire Chat persona
Chat ships disabled+unsurfaced (Coworker covers quick Q&A); recoverable from Settings.
2026-08-10 22:08:03 -07:00
Rohit C Prasad 3d13c7d699 coworker picker: setup chips above composer, folder pick at send (UX-029)
Per-session coworker+folder chips replace the sidebar split-button picker; code family gets a send-time folder dialog with git-ready temp dirs and Save as project.
Builtins ship enabled; user-facing noun is Coworker; personas flag now defaults on.
2026-08-10 21:43:02 -07:00
Rohit Prasad 9702c86c7f Merge pull request #416 from coderdailyone/fix/python-3.10-tomllib
fix: import tomllib's tomli fallback on Python 3.10
2026-08-07 20:37:01 -07:00
Rohit Prasad edc86b68c6 Merge pull request #419 from coderdailyone/ci/gui-typecheck
ci: typecheck the GUI in the gui-unit job
2026-08-07 20:36:52 -07:00
Rohit Prasad 7bcff0f88b Merge pull request #417 from coderdailyone/fix/stale-platform-paths
docs: fix stale platform/ paths in the GUI README
2026-08-07 20:36:44 -07:00