githubnext/chopinPublic

Let's compose rich plans together

Answer Atomic host input through added options in the redesigned Decisions

Decisions on main no longer offers a free-text custom answer: a member
writes one by adding an option. The host input bridge now returns an
added option as a written answer, as custom where Atomic's own dialog
accepts typed text and as chat otherwise, so Atomic never receives a
label it did not offer. An input or editor dialog, which has no options,
is answered by the option a member adds. The test fixture adds options
the way the client does, and the view tests check that a no-option host
card offers "Add an option" rather than a text box.

The rebase added the expired-card view to question-view.tsx and the
editor questionnaire widget. Their reviewed dynamic class and pointing
expressions are unchanged and take no data from the new code, so both
review hashes are renewed.

Assistant-model: Claude Opus 5.5
Assistant-workflow: inline
Assistant-verification: bun test passed: 1882 pass, 2 PostgreSQL skips, 0 fail, including added options returned as custom, chat, and input/editor answers
Assistant-verification: bun run types passed: all workspaces
Assistant-verification: bun run ci passed: dprint, oxlint, tokens, design contract, design record, Impeccable (no new findings)
User-preference: Rebase PRs onto the latest main and adapt to its code rather than keeping the old design
User-preference: Fit agent questions to Decisions' options format rather than adding a free-text field
Co-authored-by: Alex Lavaee <lavaman131@github.com>
ALAlex Lavaee authored
851bcfePatch
Parent8f3631d
6 files changed+69-41
StackedSplit
apps/server/src/harness/atomic/human-input.test.ts+21 โˆ’4
apps/server/src/harness/atomic/human-input.ts+11 โˆ’6
apps/server/src/testing/decisions.ts+30 โˆ’2
packages/question/src/react/question-view.test.ts+4 โˆ’26
scripts/design-contract/exceptions/dynamic-editor.json+2 โˆ’2
scripts/design-contract/exceptions/dynamic-packages.json+1 โˆ’1