Commit Graph
482 Commits
Author SHA1 Message Date
Rohit C Prasad de8ce3dd5f Docs: OpenShell sandboxes, a README tier and bullet, and the config example
(cherry picked from commit d77d1d8ec1)
2026-09-24 18:04:27 -05:00
Devika Verma 3d4fdfbead Merge pull request #684 from andrewyng/sandboxing-open-shell
Add support for Sandboxing using NVIDIA OpenShell
2026-09-25 04:21:58 +05:30
Devika Verma 37a09360d1 Sandbox lifetime: a dropped engine closes its sandbox; shutdown closes all; orphans reaped at start 2026-09-21 20:56:08 -07:00
Devika Verma 5ce2a18a92 Packaged app: the sidecar runs as the tool runner, and ships the runner sources
openworker-server sandbox-runner serve|attach loads only the runner package. The spec ships the runner and toolkit sources as data, so the zipapp can be packed from the frozen build.
2026-09-21 20:50:18 -07:00
Devika Verma 7792a417f6 Credential grants: the ssh wrapper lives in the copied home, so OpenShell carries it in
The runner daemon puts that folder first on PATH. Live OpenShell test for grants added; passes on the Linux VM.
2026-09-21 20:40:12 -07:00
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
Devika Verma f1d3711d78 Sandbox: a failed creation removes its folder, so no copied credential is left behind 2026-09-21 19:15:40 -07:00
Devika Verma c9bbe009a1 Sandbox credential grants: chosen home files copied into the sandbox
A machine-level list (ssh, gh, aws, kube to start); enabled entries are copied into the sandbox's private home and their hosts join the allow list.
ssh and git are pointed at the copy, and ssh tunnels through the proxy; the agent is told what it was given.
2026-09-21 19:14:30 -07:00
Devika Verma cc2b921b18 Merge pull request #679 from andrewyng/rp/team-view-review
Add Team View and harden agent-team coordination
2026-09-22 06:53:31 +05:30
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 2d6bf292c9 Clarify verified revision handoff to publish branch owner
Require the publish-branch owner to fast-forward a clean checkout to the exact independently verified revision.
2026-09-21 12:24:13 -07:00
Rohit C Prasad 2e7b734ab2 Make team coordination event driven and quiet
Keep routine team updates quiet while preserving actionable wakes for questions, blockers and assignments.
2026-09-21 06:02:41 -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 9beb204159 Fail closed when the approval owner is unavailable
Require human review when the approval-owning session is missing instead of assuming its context.
2026-09-20 19:40:18 -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 443e50e15f Harden board-owned image attachments and local retention
Copy authorized image evidence into board-owned storage and preserve it after source-worktree removal.
2026-09-19 23:33:33 -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 faa047cc6c Make idle check-ins cancellable and batch team wakes
Cancel idle check-ins on earlier activity, carry their reminders forward and batch ordinary board wakes.
2026-09-19 22:11:49 -07:00
Rohit C Prasad db81e29779 Add scoped task reads and reconcile obsolete approvals
Scope task reads to the team and retire approvals only when the exact action already has a result.
2026-09-19 21:47:56 -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 592eb7a669 Harden team accounting and shared status interfaces
Handle overlapping work and incomplete accounting while exposing consistent status updates across interfaces.
2026-09-19 18:39:03 -07:00
Devika Verma 58385ef02b Seatbelt provider: the tool runner inside the macOS sandbox
Files limited to the session's folders, network only through the allow-list proxy, no secrets in the environment.
A folder granted while a session runs restarts the sandbox and tells the agent (both providers).
On macOS the executor finds a timed-out command's children without pgrep.
2026-09-19 18:31:35 -07:00
Devika Verma 0ab12bb4dc Sandbox network: shared host lists and an allow-list proxy
The host lists per profile move out of the OpenShell policy so every provider uses them.
The proxy tunnels HTTPS to listed hosts only, for sandboxes that cannot filter by host.
2026-09-19 18:31:28 -07:00
Rohit C Prasad 9e9d7e421e Add team progress and usage projections
Expose team progress, worker status and recorded time/token usage through shared projections.
2026-09-19 18:28:23 -07:00
Devika Verma 02f0b4d4c6 Sandbox provider selection, machine status line and the sandbox setup command
Headless: OpenShell when usable, else direct with a loud warning; an explicit setting refuses.
sandbox_provider is machine-level only, so a repository cannot switch the sandbox off.
openworker machine sandbox status|setup is served but not listed in help yet.
2026-09-19 17:16:25 -07:00
Devika Verma 4181039ac4 OpenShell provider: one sandbox per agent, with a registry and network profiles
Folders are bind-mounted at their real paths; the runner is a read-only mount and the main command.
The policy is rendered from the session's roots, with the owner's uid and Landlock as a hard requirement.
The runner's pipe is the gateway's gRPC exec stream; the registry caps and cleans up sandboxes.
2026-09-19 16:53:35 -07:00
Devika Verma ced3390c07 Workspace tools run inside the tool runner when a session uses one
Definitions stay in the server; a proxy sends only the call (one tool.call per tool).
The packed runner carries the server's own aisuite file and git toolkits.
Parity tests run all ten tools in both modes on twin folders.
2026-09-19 16:06:09 -07:00
Devika Verma dd448ab617 read_file, grep and git_log logic moves to standard-library-only modules
No behaviour change: the tool definitions stay in coworker/tools and call the moved logic.
The same code will run inside a sandbox as part of the tool runner.
2026-09-19 15:56:25 -07:00
Devika Verma 35bd530421 Tool runner: the local daemon removes its socket folder when it stops 2026-09-19 15:44:51 -07:00
Devika Verma e70181f776 Tool runner: JSON-RPC daemon, attach relay, client and the Workspace interface
Direct mode stays the default and is unchanged; the runner serves the same Executor contract.
A cut stream resumes, a restarted runner fails running commands, a request id runs once.
Shell tests now run on both paths; runner-local is a developer provider with no confinement.
2026-09-19 15:40:33 -07:00
Devika Verma f35d3723a5 Shell executor moves to a standard-library-only module
No behaviour change: coworker.tools.shell re-exports it and adds the managed tool path.
The tool runner will pack this module into a sandbox, so it cannot import the app.
2026-09-19 15:28:53 -07:00
Devika Verma c79fa9b778 Merge pull request #673 from andrewyng/rp/pypi-cli
CLI: `openworker join`, `up` and `machine` commands; package publishes as `openworker`
2026-09-19 10:53:08 +05:30
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 a15fb38c93 CLI: machine logs, status --json, launchd service on macOS; install.sh
The installer uses uv or pipx for the current user, and refuses the PyPI placeholder by name.
2026-09-18 21:35:04 -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 Prasad fc3417f849 Merge pull request #672 from andrewyng/rp/remote-machines
Remote machines, agent-team cards, and connectors across machines
2026-09-18 14:26:01 -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