Commit Graph
195 Commits
Author SHA1 Message Date
Devika Verma 48fecdf4ca Settings: a Sandbox page for the provider, the network allow list and shared credentials
Machine-level, read and written through /v1/settings/sandbox into the machine's config.toml.
Adds the sandbox_network_profile setting; strings in English and Chinese.
2026-09-21 19:54:44 -07:00
Rohit C Prasad b9a30e7978 Prevent resolved approvals from reappearing after delayed updates
Remember resolved calls across delayed Inbox responses and gate events without hiding newer requests.
2026-09-21 15:26:59 -07:00
Rohit C Prasad 81a01ff901 Reconcile ordinary approval cards by exact tool call identity
Carry exact call identities through approval events and reconcile cards on completion or resolved Inbox records.
2026-09-21 13:11:29 -07:00
Rohit C Prasad cc728bcf7c Fix device provenance and linked worker denial recovery
Exclude device sinks from file provenance and atomically resolve linked worker denials with durable recovery.
2026-09-21 12:47:21 -07:00
Rohit C Prasad a75ca94f5f Add incremental board reads and immutable team artifacts
Return compact board receipts, page comments incrementally and publish shared versioned file artifacts.
2026-09-20 23:09:47 -07:00
Rohit C Prasad 001e2b9be9 Document approval context and refine Advanced disclosure
Document approval-context boundaries and keep advanced worker guidance in a compact disclosure.
2026-09-20 19:36:09 -07:00
Rohit C Prasad 3146e65594 Carry explicit approval guidance into team reviews
Persist user-reviewed worker guidance and pass deterministic role, assignment and workspace context to reviews.
2026-09-20 19:31:01 -07:00
Rohit C Prasad 810fcd4637 Open the account picker when adding a GitHub installation
Start GitHub installation selection explicitly instead of silently reusing an existing account.
2026-09-20 17:13:27 -07:00
Rohit C Prasad 89bdad221f Let leads own repository setup and preserve configured targets
Let leads clone repositories and workers create their own worktrees without replacing missing configured sessions.
2026-09-20 16:59:18 -07:00
Rohit C Prasad eef0122b24 Clarify team approvals and surface every pending request
Surface every pending request and review delegated actions using the original worker permission context.
2026-09-20 15:03:01 -07:00
Rohit C Prasad 4099fee5bc Add structured outcome and staffing proposals
Introduce grouped work and staffing proposals with acceptance criteria and explicit external-action intent.
2026-09-20 11:42:30 -07:00
Rohit C Prasad c0feec56dd Make the team panel compact and searchable at large team sizes
Add compact team controls, bounded roster previews and a searchable, paged worker directory.
2026-09-20 08:37:49 -07:00
Rohit C Prasad f3c5977eff Refresh team approvals and streamline background activity and navigation
Refresh cached approval settings, group background updates and open workers beside the lead.
2026-09-20 07:46:14 -07:00
Rohit C Prasad ede4320f33 Align team disclosures and simplify worker approval cards
Align transcript disclosure rows and sleeping strips while removing duplicate command summaries.
2026-09-20 00:01:55 -07:00
Rohit C Prasad 4f9e79c751 Synchronize resolved team proposal cards across views
Use exact proposal identities and resolved Inbox records to synchronize cards across viewers.
2026-09-19 22:59:37 -07:00
Rohit C Prasad f7fcd0d260 Fix team approval handoffs and self-wake behavior
Show the original worker action, retire linked approvals and yield correctly after scheduling a wake.
2026-09-19 20:47:00 -07:00
Rohit C Prasad b7ef51c360 Add worker session navigation back to its lead
Link full worker sessions back to their recorded lead, including after a direct open or reload.
2026-09-19 20:09:02 -07:00
Rohit C Prasad b20db26029 Separate task details from worker conversations
Keep task evidence separate from worker transcripts and reuse the composer for worker conversations.
2026-09-19 20:03:11 -07:00
Rohit C Prasad bba6cb75ec Build the team view and worker conversation pane
Add Work, Workers and Stats panes, task chips, quiet updates and the worker conversation view.
2026-09-19 18:41:10 -07:00
Rohit C Prasad e0c7b6eeb0 CLI: join and up at the top level; one spelling per command
openworker machine keeps status, keys, logs, service and leave.
join takes a link, or a controller's address to approve a code there (was auth join).
2026-09-18 21:58:37 -07:00
Rohit C Prasad a5ed9c8937 CLI: openworker machine commands, real help and version; package publishes as openworker
aisuite comes from PyPI (0.2.0), so the package has no git-URL dependency.
Older top-level spellings (openworker join, up, status) keep working, unlisted.
2026-09-18 16:40:07 -07:00
Rohit C Prasad 4b1dd4868b Translations: English and Chinese keys for the new screens
Every string on the new screens goes through t(), with keys in en.json and zh.json.
2026-09-18 12:26:00 -07:00
Rohit C Prasad 2be346d7dd Card gallery (dev only): card states, scenario sessions, server contract check
/#/gallery renders every card state from payload files; scenario sessions boot the real app from JSON.
A contract file keeps the states in step with what the server sends. Not in the production bundle.
2026-09-18 11:54:30 -07:00
Rohit C Prasad bd977f5aaa E2E specs for machines, connectors, teams, settings and the gallery
Hermetic specs for the machines, union view, connectors-across, team and settings flows.
The fixture replays gallery card states by id.
2026-09-17 18:27:40 -07:00
Devika Verma 80e9489468 Request cards: staffing by role, work items, lead decision, team update, two-tone
The staffing card shows one line per role with a model and connector ticks for the whole role.
A lead's decision on a worker's call and the team update get their own cards; cards go two-tone.
2026-09-17 17:27:40 -07:00
Devika Verma 42bf9da2d7 GUI foundation: machine-aware api, routes, type scale, text size, card payloads
api.ts routes each call to the session's machine or the cloud proxy.
One module turns server payloads into card props and card answers into wire messages.
2026-09-17 16:27:40 -07:00
Rohit C Prasad 260bcc7286 Settings: Machines, scoped pages, connectors across machines
Settings gains Machines and a machine scope for Models, Skills, Coworkers, Memory and Connectors.
Glance pages and configurations show which machine answers a workspace or repo.
2026-09-05 15:06:46 -07:00
Rohit C Prasad 0379865f6b App shell: sidebar by machine, runs-on chip, composer, transcript
Sessions group by machine; the setup row chooses where a session runs.
Calm type pass: token type scale, sentence-case labels, context ring on the model pill.
2026-09-05 15:01:39 -07:00
Devika Verma 786ba30225 Continue the turn when a reply is cut off at the output limit with no action (OPE-171)
A reply that hit the output-token limit (finish_reason "length") with no tool
call — typically thinking consumed the whole budget and nothing else came back
— took the `if not turn.tool_calls` branch and ended the turn as "completed".
The task was silently abandoned (two of Fable 5.1's three failures and one of
Sonnet 5's on a ten-task trial were this shape).

Engine:
- On such a reply, append a user-role nudge (TRUNCATION_NUDGE: act now, do not
  repeat the reasoning), emit a CONTINUATION event, and go round the loop.
  At most MAX_TRUNCATION_CONTINUATIONS (2) consecutive nudges per turn; the
  counter resets on any non-truncated reply and at the start of each turn.
- On the cap, persist a `truncated` notice and end with TURN_END
  status "truncated" — never "completed".
- The cut-off reply stays in the transcript (finish_reason "length", its
  partial reasoning) but is replayed to providers as a short stub
  (`replay: "stub"` sidecar → TRUNCATION_STUB): its thinking block has no
  signature, which Anthropic rejects, and it carries nothing useful anywhere.
- A truncated reply that still has a parseable tool call is unchanged (the
  mangled-call path already covers broken arguments).

GUI (surfaces/gui): "continuation" event → info notice; turn_end "truncated"
→ warning; persisted `truncated` notice replays as a retriable warning; en/zh
strings.

Tests: tests/test_truncation_continuation.py (nudge then complete, stub
replay, partial text, cap → truncated + notice, tool-call case untouched,
counter resets within and between turns, normal path untouched, stub survives
persistence); GUI itemsFromMessages test for the truncated notice.
2026-09-08 18:29:44 +05:30
Devika Verma 4a42d8ffc9 OPE-136: GUI — honest approval cards, one tool-review dialect, connectors clarity
Approval surface:
- MCP cards show the full argument envelope (expandable JSON) and the real
  destination ("leaves this computer → host", stamped from the user's own
  config); the long-tail card path never silently truncates any argument —
  values the one-liner can't show whole render as labeled complete blocks
  (the old 96-char cut hid email bodies past char 96).
- The MCP grant ladder: Allow once / Allow for this request (EXTERNAL
  family; tooltip states the trade — later calls in this answer run unseen,
  nothing survives the answer) / Always allow this tool (durable, revocable
  on the server page) / Deny. Session-wide grants stay hidden where the
  server refuses them — no button that lies.
- One renderer for parked approvals: a redelivered (reconnect/navigation)
  approval maps back into the real card component — evidence and buttons
  can never drift from the live card again. Transcript origin chips name
  their source: your trust rule vs the legacy server flag vs a run grant.

Connectors/MCP management:
- Connect-time tool review: per-tool checkboxes; first review is an
  explicit "Keep these tools" consent moment (creates the include list and
  locks in fail-closed growth), later toggles auto-save with a receipt;
  "new" badges only tools the server added since review (declines are
  remembered via the exclude list, never badged).
- Trust surface: right-aligned "always allowed · Revoke" chip per trusted
  tool (idle-dimmed when the tool is unchecked — standing rules never
  vanish from the screen that audits them); header counts granted
  authority; loud banner + one-click migration for the legacy server flag.
- One tool-review dialect: shared row/chip/count primitives across MCP and
  catalog-connector pages; read/asks-first chips explain themselves
  (offered only where our own code pins the kind — MCP rows carry no risk
  chips, a server's word is not evidence; the page states "every tool asks
  unless always-allowed" once instead).
- Clarity passes from live testing: one healthy status word (Ready);
  group headers count their own rows; adding/connecting a server lands on
  the detail page where the review ceremony waits (curated offers live in
  Available, never among servers you own); Test shows Testing…/a transient
  result at the button with the durable receipt in the header; the
  per-server Configuration mirror is replaced by one "Show mcp.json"
  reveal-in-file-manager affordance; lifecycle controls carry explanatory
  tooltips. en+zh throughout.
2026-08-31 08:06:14 +05:30
Rohit C Prasad 709a9bab90 gui: fix plural forms and notice strings caught by CI e2e
Folder-count summary gets _one/_other; keyboard shortcuts register at commit
so early input isn't dropped during boot; restores main's copy for the
files-location help and the onboarding signed-in line.
2026-08-28 21:13:13 -07:00
Rohit C Prasad 086be2a1a6 gui: re-apply and extend i18n wrapping onto current main
Re-applies the react-i18next wrapping onto main's components and covers the
ones added since; count keys use _one/_other plural forms.
Locale tests enforce en/zh key parity and placeholder contracts.
2026-08-28 16:06:05 -07:00
Rohit C Prasad 5392e7ac15 Merge main into feat/gui-i18n 2026-08-28 16:05:58 -07:00
Rohit C Prasad 26a51c9fcc Prepare app release 0.2.1: version bump 2026-08-25 09:02:24 -07:00
Rohit C Prasad 40990da5e2 Persist approval provenance and server-authored mode notices
Approval origins (reviewer/user/bypass, notes, grants) ride the tool message display sidecar so chips and deny blocks survive reload.
The Auto-Approve explainer is persisted once per session server-side with new shorter copy; later switches persist one-line markers.
2026-08-24 14:14:51 -07:00
Rohit C Prasad 6d0d60b1f2 Show the reviewer hesitation on unsure-escalated approval cards
PERMISSION_REQUIRED carries reviewer_unsure when an unsure verdict raised the card; both card layouts render it as a quiet line.
2026-08-24 13:39:56 -07:00
Rohit C Prasad 2c843cb54e Surface the reviewer pause on the composer mode chip
Auto-approve shows a quiet "· paused" while the breaker is tripped; clears on turn end, question answers, and session switches.
2026-08-24 13:22:30 -07:00
Rohit C Prasad f1345bdfe2 Auto-approve: 5-deny streak breaker with notice, question-aware reviewer evidence, provenance chips
Breaker pauses loudly and resets on non-deny verdicts and ask_user answers; replies reach the judge with the agent question marked as data.
Cardless runs annotate quietly: auto-approved (reviewer reason) or approval bypassed.
2026-08-24 13:16:31 -07:00
Rohit C Prasad 50c2b04678 Restore live-turn state on session reconnect
ws ready now carries running (server truth); the GUI restores Stop + the waiting row and never shows the intro hero mid-turn.
2026-08-24 12:23:29 -07:00
Rohit C Prasad ed75ab4b57 Pre-release fixes from the 0.2.0 walkthrough
Onboarding Next now accepts OAuth sign-in; an explicit draft folder pick survives a coworker change.
Composer shows context-window figures only (session totals on hold); specialists introduce themselves on first contact.
2026-08-24 12:01:30 -07:00
Rohit C Prasad 58a39839ea Prepare app release 0.2.0: version bump 2026-08-24 09:59:53 -07:00
Rohit Prasad 48f10ff295 Merge pull request #138 from Amagah/fix/131-sidecar-resource-dir
Create the sidecar resource dir in build.rs so a fresh clone builds
2026-08-23 21:50:01 -07:00
Rohit Prasad c75add0a70 Merge pull request #536 from andrewyng/rp/project-memory
Named memories, boards tied to project identity, Newer lead agents.
2026-08-23 13:10:36 -07:00
Rohit Prasad b686a3b91f Merge pull request #365 from ChakrawarShubham/fix/ws-onmessage-unguarded-parse
fix(gui): guard session WS onmessage JSON.parse against malformed frames
2026-08-23 11:53:36 -07:00
Rohit C Prasad f679853c64 Grant-time presence notice renders as a quiet info line 2026-08-23 01:24:58 -07:00
Rohit C Prasad 7b7c8f7126 Composer attach menu: message/session split, project memory & board bindings (UX-044)
Radio submenus with derived/named label rules, MRU 5 + in-place filter at 6+.
View & edit routes to the memory panel; board gets a none row.
2026-08-23 01:24:58 -07:00
Rohit C Prasad 87b4eebc15 Merge main into feature/permission-modes
Union resolutions in the four files both sides touched; approval-card sizes settle on the type-scale tokens.
2026-08-23 01:01:57 -07:00
Devika Verma 97eca9c8ba Mode notice waits for the server-confirmed mode; Auto-approve copy pass
A new session briefly kept the previous session's mode value until the
ready event delivered the real one, so leaving an Auto-approve session
posted its banner into the fresh transcript, then a stray marker. The
notice logic now lives in a pure modeNoticeStep that is a no-op until
ready confirms which session the mode belongs to; tests replay the
reported sequence and the restored-session banner case.

Copy: "Auto-approve" sentence-cased like its sibling entries; picker
description recast as an imperative (owner wording); banner opens with
"classifies each action" to match. Stale approvalSlot comment rewritten.
2026-08-22 14:47:26 +05:30
Devika Verma f7bd1a14ed Auto-Approve picker copy matches the banner 2026-08-22 10:16:41 +05:30
Devika Verma 82aca54fc6 Retire the check-count badge and its polling 2026-08-22 10:14:06 +05:30