githubnext/chopinPublic

Let's compose rich plans together

Merge current main into OpenUI composition branch

MAMaggie Appleton authored
584e50fPatch
137 files changed+6473-678
StackedSplit
.github/workflows/pr-readiness-worker.lock.yml+1 −1
.github/workflows/pr-readiness-worker.md+6 −3
AGENTS.md+14 −13
apps/server/package.json+1 −0
apps/server/src/agent/planner.test.ts+14 −1
apps/server/src/agent/planner.ts+35 −5
apps/server/src/agent/tools.test.ts+86 −3
apps/server/src/agent/tools.ts+9 −5
apps/server/src/channels/document-url.ts+25 −0
apps/server/src/channels/routes.test.ts+96 −0
apps/server/src/channels/routes.ts+16 −8
apps/server/src/chat/incoming.ts+13 −4
apps/server/src/harness/harness-v1.ts+8 −0
apps/server/src/harness/pi.contract.test.ts+1 −1
apps/server/src/main.ts+240 −64
apps/server/src/mcp/hosted.test.ts+51 −0
apps/server/src/mcp/hosted.ts+26 −9
apps/server/src/plan/decision-counts.test.ts+329 −0
apps/server/src/plan/edit.test.ts+81 −0
apps/server/src/plan/edit.ts+43 −1
apps/server/src/plan/service.ts+132 −2
apps/server/src/questions-service-durability-1.test.ts+4 −1
apps/server/src/questions/unanswered.test-fixtures.ts+97 −0
apps/server/src/questions/unanswered.test.ts+23 −0
apps/server/src/questions/unanswered.ts+36 −0
apps/server/src/socket/admission.ts+37 −4
apps/server/src/socket/decision-watch.test.ts+313 −0
apps/server/src/socket/decision-watch.ts+218 −0
apps/server/src/storage/contract.ts+128 −0
apps/server/src/storage/memory/adapter.ts+41 −9
apps/server/src/storage/model.ts+12 −1
apps/server/src/storage/port.ts+8 −0
apps/server/src/storage/postgres/adapter.test.ts+72 −0
apps/server/src/storage/postgres/adapter.ts+77 −6
apps/server/src/storage/postgres/migrations.ts+7 −0
apps/server/src/storage/postgres/migrations/017_unanswered_decisions.sql+3 −0
apps/server/src/storage/postgres/migrations/017_unanswered_decisions.ts+69 −0
apps/server/src/storage/postgres/research.ts+8 −1
apps/server/src/testing/plan.ts+12 −3
apps/server/src/testing/seecode-assessment.ts+155 −0
apps/server/src/wire.ts+36 −3
apps/web/src/api.ts+8 −2
apps/web/src/chat/chat.tsx+2 −3
apps/web/src/chat/composer.css+10 −3
apps/web/src/chat/markdown.css+9 −0
apps/web/src/chat/markdown.tsx+14 −1
apps/web/src/chat/reference-picker.test.ts+26 −1
apps/web/src/chat/reference-picker.tsx+10 −13
apps/web/src/chat/transcript-source.test.tsx+34 −36
apps/web/src/chat/transcript.tsx+17 −25
apps/web/src/chat/work-progress.tsx+5 −1
apps/web/src/decision-view-control.tsx+20 −0
apps/web/src/diagram-gallery/page.tsx+0 −14
apps/web/src/diagram-gallery/styles.css+0 −14
apps/web/src/document-actions.tsx+165 −4
apps/web/src/icon-assets.test.ts+7 −0
apps/web/src/navigation-shell.tsx+46 −2
apps/web/src/navigation.css+65 −4
apps/web/src/project-sidebar.tsx+35 −1
apps/web/src/room-workspace.tsx+2 −12
apps/web/src/sidebar-decision-counts.test.ts+468 −0
apps/web/src/sidebar-decision-counts.tsx+67 −0
apps/web/src/sidebar-decision-plan.ts+55 −0
apps/web/src/sidebar-decision-watch.test.ts+232 −0
apps/web/src/sidebar-decision-watch.ts+214 −0
apps/web/src/theme.css+17 −4
apps/web/src/use-project-documents.ts+101 −4
apps/web/src/use-sidebar-decisions.ts+134 −0
apps/web/src/viewport.test.ts+26 −2
apps/web/src/viewport.ts+15 −11
apps/web/src/wire.ts+5 −4
bun.lock+41 −36
docs/architecture.md+15 −13
docs/authentication.md+4 −1
docs/channels.md+62 −1
docs/hosted-agent.md+8 −2
docs/self-hosting.md+13 −13
docs/storage.md+7 −1
docs/superpowers/plans/2026-10-08-seecode-rendering-module.md+0 −60
e2e/database.ts+25 −3
e2e/diagram-gallery/gallery.e2e.ts+4 −81
e2e/document-creation.e2e.ts+6 −1
e2e/document-navigation.e2e.ts+9 −6
e2e/github.ts+3 −1
e2e/harness/fake-harness.ts+2 −2
e2e/harness/scripted-planner.ts+1 −4
e2e/hosted.e2e.ts+5 −2
e2e/icon-size.e2e.ts+116 −0
e2e/playwright.config.ts+3 −0
e2e/responsive-activity.e2e.ts+2 −2
e2e/responsive-workspace.e2e.ts+16 −0
e2e/seecode.e2e.ts+195 −0
e2e/shell.e2e.ts+3 −1
e2e/sidebar-decision-counts.e2e.ts+822 −0
e2e/smoke.e2e.ts+6 −2
e2e/source/icon-size.fixture.ts+103 −0
package.json+7 −7
packages/diagrams/README.md+14 −1
packages/diagrams/src/diagram.tsx+2 −1
packages/diagrams/src/index.ts+2 −0
packages/diagrams/src/source.test.ts+23 −0
packages/diagrams/src/source.ts+20 −0
packages/diagrams/src/viewer/chrome.css+1 −1
packages/diagrams/src/viewer/diagram.test.tsx+0 −13
packages/diagrams/test/render.test.ts+9 −17
packages/dialect/src/convert.test.ts+1 −0
packages/dialect/src/dialect.ts+3 −0
packages/dialect/src/index.ts+1 −0
packages/editor/package.json+1 −0
packages/editor/src/plan-editor.tsx+1 −0
packages/editor/src/resolved-layer.tsx+3 −3
packages/editor/src/styles.css+8 −6
packages/editor/src/widgets/code.test.ts+3 −1
packages/editor/src/widgets/code.ts+4 −2
packages/editor/src/widgets/questionnaire.tsx+1 −1
packages/editor/src/widgets/render-blocks.tsx+67 −11
packages/icons/package.json+4 −1
packages/icons/src/brand.tsx+8 −1
packages/icons/src/filled.tsx+1 −0
packages/icons/src/icon.test.tsx+12 −0
packages/protocol/index.d.ts+96 −3
patches/@ai-sdk%2Fharness-pi@1.0.128.patch+0 −25
patches/@ai-sdk%2Fharness-pi@1.0.148.patch+13 −0
scripts/design-contract/exceptions/dynamic-editor.json+5 −5
scripts/design-contract/exceptions/dynamic-packages.json+1 −1
scripts/design-contract/exceptions/dynamic-web.json+5 −5
scripts/pr-maintenance/actions.test.ts+1 −0
scripts/pr-maintenance/application.mjs+1 −1
scripts/pr-maintenance/application.test.ts+81 −10
scripts/pr-maintenance/artifact.test.ts+1 −0
scripts/pr-maintenance/coordinator-run.mjs+65 −18
scripts/pr-maintenance/coordinator-run.test.ts+81 −1
scripts/pr-maintenance/inventory.mjs+31 −2
scripts/pr-maintenance/inventory.test.ts+27 −0
scripts/pr-maintenance/isolated-git.test-fixtures.ts+4 −0
scripts/pr-maintenance/proposal.test.ts+1 −0
scripts/pr-maintenance/worker-run.test.ts+1 −0