Load operator extension paths in atomic Planner sessions - #238
Open
lavaman131 wants to merge 3 commits into
Open
lavaman131 wants to merge 3 commits into
lavaman131 wants to merge 3 commits into
Conversation
HARNESS_EXTENSIONS lists extension or package paths that every atomic Planner session loads, as Atomic's --extension flag would. A package's extensions, skills and workflows all register, so an operator can give the Planner workflows without installing them into the agent directory. The paths are split on the platform path delimiter, must be absolute and exist, and are refused under any other harness. Background workers never load them, and the startup line names them. Assistant-model: Claude Opus 5.5 Assistant-workflow: inline Assistant-verification: bun test passed: 1907 pass, 2 PostgreSQL skips, 0 fail; the new Planner test fails without the adapter change Assistant-verification: bun run types passed: all workspaces Assistant-verification: bun run ci passed: dprint, oxlint (7 existing warnings, none new), tokens, design contract, design record, Impeccable (no new findings) Assistant-verification: adapter integration passed: a Planner session with a local package on HARNESS_EXTENSIONS listed that package's workflows through the workflow tool Co-authored-by: Alex Lavaee <lavaman131@github.com>
…backend CI timed out the operator-extension test at Bun's 5 s default. Its first workflow tool call starts Atomic's durable backend, and without Postgres that falls back to the in-memory backend only after several seconds; with no Postgres runtime and no Docker, the call alone took 4.7 s locally. The test is split in two, and both tests that call the workflow tool get 30 s. Assistant-model: Claude Opus 5.5 Assistant-workflow: inline Assistant-verification: bun test failed before this change on CI: operator extension paths test timed out after 5000 ms Assistant-verification: bun test passed: full.test.ts with PATH lacking docker and ATOMIC_POSTGRES_RUNTIME_DIR=/nonexistent (15 pass), and the whole suite (1908 pass, 2 skip, 0 fail) Assistant-verification: bun run types and bun run ci passed: no new oxlint warnings, no new Impeccable findings Co-authored-by: Alex Lavaee <lavaman131@github.com>
…e room A message without @chopin is sent as a room message, and the composer gave no sign of it, so a member who expected a Planner reply got silence. The composer now says, below the draft and before anything is sent, "Sends to the Planner, which will reply" or "Room only. Add @chopin to ask the Planner". The cue comes from the same chatSendPayload prediction the send uses, so it follows references and an off Planner (no cue) exactly as the wire destination will. The @chopin addressing rule and addressed() are unchanged, and the Send button keeps its name. Assistant-workflow: goal (run c99248c7-a6cb-4858-95f9-5039c865f0b6) Assistant-model: Claude Sonnet 5.5 Assistant-verification: bun test passed: apps/web 355 pass, 0 fail, including destinationCue cases for room, planner, reference-masked mention, empty draft and Planner off Assistant-verification: bun run types and bun run ci passed: dprint, oxlint (7 existing warnings, none new), tokens, design contract, Impeccable (no new findings) Assistant-verification: playwright e2e passed: bun run e2e e2e/harness.e2e.ts, 2 passed including the composer destination cue test Co-authored-by: Alex Lavaee <lavaman131@github.com>
MaggieAppleton
approved these changes
Oct 2, 2026
MaggieAppleton
left a comment
Collaborator
There was a problem hiding this comment.
Reviewed the changes against #230: extension-path parsing and startup validation, loading operator packages only in full Planner sessions, worker isolation, and the added composer destination cue. No blocking issues found in this PR’s own diff. Validation, browser integration, and container CI all pass.
Non-blocking description improvement: include the new “Room only / Sends to the Planner” composer hint in the summary, since this PR also changes that UI.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #230.
Operators can now give the atomic Planner extensions and workflows without installing them into the server's Atomic agent directory. Today the Planner only sees what the agent directory and a verified checkout's
.atomic/settings.jsoninstall, so a package an operator loads withatomic --extensionin their own terminal never reaches it.What changes
HARNESS_EXTENSIONS. A list of extension or package paths, separated by the platform path delimiter, that every atomic Planner session loads the same way Atomic's--extensionflag does. A package's extensions, skills, and workflows all register. Chopin passes the paths to Atomic's resource loader asadditionalExtensionPaths.self-hosting.md,hosted-agent.md, and.env.exampledescribe the variable.Verification
bun test: 1907 pass, 2 PostgreSQL skips, 0 fail. The new Planner test registers a local package's tool, skill, and workflow through the operator paths, confirms a worker session on the same harness doesn't see them, and fails without the adapter change.bun run typesandbun run cipass. oxlint reports no new warnings and Impeccable no new findings.Assistant-workflow: inline
Assistant-verification: bun test passed: 1907 pass, 2 skip, 0 fail
Assistant-verification: bun run types and bun run ci passed
Co-authored-by: Alex Lavaee lavaman131@github.com