githubnext/chopinPublic

Let's compose rich plans together

Run the Planner as a full Atomic session in local mode

Opt in with ATOMIC_PLANNER=full only under local authentication and the Atomic
harness. Verify each Planner checkout's origin before enabling Atomic coding
tools, builtins, and operator resources. Unregistered worker sessions and
Planner sessions without a verified checkout retain the isolated boundary.

Bind Chopin's Decisions to Atomic HostInput rather than intercepting tools.
Map questionnaires and dialogs, preserve raw answers, label workflow requests,
and withdraw pending cards on abort or timeout after durable persistence.
Document the operator-level shell and filesystem trust change.

Assistant-model: Claude Opus 5.5
Assistant-workflow: goal (run 98acf681-3730-4957-b885-0d70e0e6b32a)
Assistant-verification: bun test passed: 1706 pass, 2 PostgreSQL skips, 0 fail across 193 files
Assistant-verification: bun test apps/server/src/harness passed: 141 tests, including full Atomic SDK tools, resources, cwd, HostInput and isolated fallback
Assistant-verification: bun run types passed: all workspaces and E2E TypeScript checks
Assistant-verification: bun run fix passed: formatting inspected; no errors and one existing lint warning
Assistant-verification: bun run ci passed: formatting, lint, tokens, typography and design checks; no new design findings
Assistant-verification: isolation mutation checks passed: builtins on caused 16 failures, skill discovery caused 2, and plain-turn result tool caused 9; all mutations reverted byte-for-byte
Assistant-verification: relative documentation link check passed: 38 links and anchors resolved with exact casing
Assistant-verification: qlty smells passed: no duplication findings; complexity diagnostics match existing adapter closure patterns and are recorded in implementation notes
User-preference: "Atomic's SDK is the runtime and the host supplies human input; Chopin implements HostInput rather than intercepting tools"
User-preference: "In local mode the Planner may run as a full Atomic session so workflows run inside Chopin with questions in Decisions"
Co-authored-by: Alex Lavaee <lavaman131@github.com>
ALAlex Lavaee authored
63affd1Patch
Parent4430501
32 files changed+1369-158
StackedSplit
AGENTS.md+4 −2
apps/server/src/agent/planner.ts+10 −2
apps/server/src/chat/service.ts+9 −4
apps/server/src/config.test.ts+56 −0
apps/server/src/config.ts+32 −1
apps/server/src/harness/atomic.contract.test.ts+8 −1
apps/server/src/harness/atomic/adapter.ts+54 −31
apps/server/src/harness/atomic/checkout.test.ts+40 −0
apps/server/src/harness/atomic/checkout.ts+37 −0
apps/server/src/harness/atomic/full.test.ts+188 −0
apps/server/src/harness/atomic/full.ts+17 −0
apps/server/src/harness/atomic/human-input.test.ts+369 −0
apps/server/src/harness/atomic/human-input.ts+121 −0
apps/server/src/harness/harnesses.ts+9 −2
apps/server/src/harness/pi/model-stub.ts+4 −0
apps/server/src/harness/session.test.ts+53 −0
apps/server/src/harness/session.ts+29 −2
apps/server/src/questions/service-ask.ts+22 −2
apps/server/src/questions/service-cancel.ts+56 −41
apps/server/src/questions/service-definition.ts+2 −2
apps/server/src/questions/service.ts+1 −1
docs/authentication.md+7 −0
docs/hosted-agent.md+66 −10
docs/self-hosting.md+70 −34
packages/dialect/src/nodes/questionnaire-mdx.ts+21 −7
packages/dialect/src/validate.ts+6 −2
packages/protocol/question.d.ts+2 −0
packages/question/src/answer.ts+4 −1
packages/question/src/draft.ts+4 −2
packages/question/src/question.test.ts+13 −0
packages/question/src/react/question-view.test.ts+15 −0
packages/question/src/schema.ts+40 −11