Activate Jev conversation decisions and shared document controls #265MergedMaggieAppletonmerged 1 commit intomainfromrefs/pull/265/headConversationFiles changed179 files changed+16428-1086StackedSplitapps/server/src/agent/revise-open-decision-4.test.ts+3 −4apps/server/src/conversation-plan/accepted-research-close.test.ts+76 −0apps/server/src/conversation-plan/accepted-research-commit.test.ts+63 −0apps/server/src/conversation-plan/accepted-research-gates.test.ts+79 −0apps/server/src/conversation-plan/accepted-research-memory.test.ts+80 −0apps/server/src/conversation-plan/accepted-research-socket.test-fixtures.ts+41 −0apps/server/src/conversation-plan/accepted-research.test-fixtures.ts+135 −0apps/server/src/conversation-plan/accepted-research.ts+79 −0apps/server/src/conversation-plan/command-correction-memory.test-fixtures.ts+66 −0apps/server/src/conversation-plan/command-correction-memory.test.ts+118 −0apps/server/src/conversation-plan/commands.ts+130 −0apps/server/src/conversation-plan/research-commands.ts+108 −0apps/server/src/conversation-plan/save-command.test.ts+180 −0apps/server/src/conversation-plan/save-command.ts+59 −0apps/server/src/conversation-plan/service-opening-memory.test-fixtures.ts+66 −0apps/server/src/conversation-plan/service-opening-memory.test.ts+337 −0apps/server/src/conversation-plan/service-opening-order-memory.test.ts+290 −0apps/server/src/conversation-plan/service-opening.test.ts+236 −0apps/server/src/conversation-plan/service-opening.ts+111 −0apps/server/src/harness/tool-names.ts+1 −0apps/server/src/main.ts+176 −40apps/server/src/questions/backfill-implementation.test.ts+79 −0apps/server/src/questions/backfill.test.ts+256 −0apps/server/src/questions/backfill.ts+142 −0apps/server/src/socket/authorization.test.ts+60 −0apps/server/src/socket/authorization.ts+26 −0apps/server/src/testing/card-gap-document.ts+25 −0apps/web/package.json+1 −0apps/web/src/chat/chat.tsx+34 −1apps/web/src/chat/decision-entry.test.tsx+267 −0apps/web/src/chat/decision-entry.tsx+222 −0apps/web/src/chat/markdown.css+4 −0apps/web/src/chat/model.test.ts+15 −0apps/web/src/chat/model.ts+8 −2apps/web/src/chat/research-offer-observer.test.ts+127 −0apps/web/src/chat/research-offer-transcript.test.ts+73 −0apps/web/src/chat/research-offer.test-fixtures.ts+68 −0apps/web/src/chat/research-offer.test.ts+77 −0apps/web/src/chat/research-offer.tsx+318 −0apps/web/src/chat/scoped-choice-entry.test.tsx+156 −0apps/web/src/chat/scoped-choice-entry.tsx+141 −0apps/web/src/chat/transcript-decisions.test-fixtures.ts+214 −0apps/web/src/chat/transcript-decisions.test.tsx+50 −0apps/web/src/chat/transcript-scoped-choice.test.tsx+75 −0apps/web/src/chat/transcript-source.test.tsx+54 −0apps/web/src/chat/transcript.test.tsx+160 −0apps/web/src/chat/transcript.tsx+239 −14apps/web/src/conversation-plan/analysis-action.ts+8 −0apps/web/src/conversation-plan/analysis-labels.ts+32 −0apps/web/src/conversation-plan/analysis-overview.test.tsx+58 −0apps/web/src/conversation-plan/analysis-overview.tsx+240 −0apps/web/src/conversation-plan/announcements.test.ts+168 −0apps/web/src/conversation-plan/announcements.ts+27 −0apps/web/src/conversation-plan/card-parts.tsx+29 −0apps/web/src/conversation-plan/evidence-popover.test.tsx+151 −0apps/web/src/conversation-plan/evidence-popover.tsx+115 −0apps/web/src/conversation-plan/evidence.test.ts+247 −0apps/web/src/conversation-plan/evidence.ts+109 −0apps/web/src/conversation-plan/excerpt-correction.tsx+226 −0apps/web/src/conversation-plan/links.test.ts+179 −0apps/web/src/conversation-plan/links.ts+97 −0apps/web/src/conversation-plan/markers.test.tsx+181 −0apps/web/src/conversation-plan/markers.tsx+356 −0apps/web/src/conversation-plan/planner-job-diagnostics.tsx+80 −0apps/web/src/conversation-plan/source.css+5 −0apps/web/src/conversation-plan/source.ts+58 −0apps/web/src/conversation-plan/store.test.ts+119 −0apps/web/src/conversation-plan/store.ts+74 −0apps/web/src/document-workspace-host.tsx+4 −4apps/web/src/room-workspace.tsx+375 −83apps/web/src/theme.css+20 −2apps/web/src/tokens.test.ts+60 −31apps/web/src/workspace-model.test.ts+6 −8apps/web/src/workspace-model.ts+1 −1apps/web/src/workspace.tsx+23 −26bun.lock+1 −0e2e/decision-marker.e2e.ts+13 −13e2e/discarded-mobile-geometry.e2e.ts+36 −0e2e/document-tab-stability.e2e.ts+75 −0e2e/editing.e2e.ts+4 −1e2e/github.ts+17 −0e2e/playwright.config.ts+28 −0e2e/research-child-recovery.e2e.ts+173 −3e2e/research-child-surface.e2e.ts+8 −1e2e/research-recovery-database.ts+176 −0e2e/responsive-decisions.e2e.ts+9 −3e2e/responsive-workspace.e2e.ts+164 −44e2e/shell.e2e.ts+6 −6e2e/sidecar-card-states.e2e.ts+344 −0e2e/sidecar-document-spacing.e2e.ts+119 −0e2e/sidecar-draft-reopen.e2e.ts+110 −0e2e/sidecar-evidence-absence.e2e.ts+14 −0e2e/sidecar-option-async.e2e.ts+179 −0e2e/sidecar-option-contracts.e2e.ts+286 −0e2e/sidecar-spacing-database.ts+60 −0e2e/sidecar.e2e.ts+52 −27e2e/smoke.e2e.ts+4 −1packages/editor/src/card-meta.test.ts+110 −0packages/editor/src/card-meta.ts+93 −0packages/editor/src/comment-geometry.test.ts+26 −1packages/editor/src/comment-geometry.ts+28 −0packages/editor/src/decision-pin.test.ts+54 −0packages/editor/src/decision-pin.ts+37 −0packages/editor/src/decision-placement.ts+7 −0packages/editor/src/decision-state.test.ts+158 −2packages/editor/src/decision-state.ts+32 −3packages/editor/src/decisions-metadata.test.tsx+73 −0packages/editor/src/decisions.tsx+40 −10packages/editor/src/evidence-geometry.test.ts+44 −0packages/editor/src/evidence-geometry.ts+44 −0packages/editor/src/index.ts+3 −0packages/editor/src/marks.test.ts+112 −1packages/editor/src/marks.ts+80 −25packages/editor/src/plan-editor.tsx+23 −1packages/editor/src/presence-faces.tsx+5 −2packages/editor/src/provider.test.ts+79 −4packages/editor/src/provider.ts+21 −7packages/editor/src/questionnaires.test.ts+199 −2packages/editor/src/questionnaires.ts+95 −9packages/editor/src/resolved-actions.ts+114 −0packages/editor/src/resolved-layer.tsx+189 −27packages/editor/src/resolved-metadata.test.ts+49 −0packages/editor/src/resolved.ts+29 −0packages/editor/src/styles.css+80 −1packages/editor/src/threads.ts+2 −2packages/editor/src/widget-options.ts+6 −0packages/editor/src/widgets-plugin.tsx+6 −0packages/editor/src/widgets/card-gap.test.ts+38 −0packages/editor/src/widgets/card-gap.tsx+76 −0packages/editor/src/widgets/decision-deletion.tsx+148 −0packages/editor/src/widgets/decorator-selection.test.ts+38 −2packages/editor/src/widgets/decorator-selection.tsx+3 −2packages/editor/src/widgets/discarded-navigation-boundary.ts+27 −0packages/editor/src/widgets/discarded-navigation.test.ts+63 −0packages/editor/src/widgets/discarded-navigation.tsx+157 −0packages/editor/src/widgets/evidence-hover.tsx+216 −0packages/editor/src/widgets/index.ts+3 −0packages/editor/src/widgets/questionnaire-collapse-list.test.tsx+77 −0packages/editor/src/widgets/questionnaire-collapse-presence.test.tsx+58 −0packages/editor/src/widgets/questionnaire-collapse-settled.test.tsx+73 −0packages/editor/src/widgets/questionnaire-lifecycle.test.tsx+86 −0packages/editor/src/widgets/questionnaire-metadata.test-fixtures.ts+28 −0packages/editor/src/widgets/questionnaire-metadata.test.tsx+115 −0packages/editor/src/widgets/questionnaire-people.test.tsx+36 −0packages/editor/src/widgets/questionnaire-presentation.test.tsx+40 −0packages/editor/src/widgets/questionnaire-previous.test.tsx+30 −0packages/editor/src/widgets/questionnaire-source.test.tsx+36 −0packages/editor/src/widgets/questionnaire-terminal-semantics.test.tsx+54 −0packages/editor/src/widgets/questionnaire.tsx+288 −16packages/icons/src/line.tsx+9 −10packages/question/src/react/add-option.test.ts+63 −0packages/question/src/react/index.ts+8 −0packages/question/src/react/open-discard-compatibility.test.ts+29 −0packages/question/src/react/open-discard.test.ts+25 −0packages/question/src/react/previous-answer.test.ts+43 −0packages/question/src/react/project-suggestion.test.ts+128 −0packages/question/src/react/project-suggestion.ts+93 −0packages/question/src/react/question-view-projection.test.ts+106 −0packages/question/src/react/question-view-retained-contracts.test.ts+117 −0packages/question/src/react/question-view-terminal-origin.test.ts+112 −0packages/question/src/react/question-view.test-fixtures.ts+14 −0packages/question/src/react/question-view.tsx+185 −60packages/question/src/react/questionnaire-controller.ts+600 −0packages/question/src/react/questionnaire-types.ts+43 −0packages/question/src/react/refining.test.ts+16 −0packages/question/src/react/resolved-actions.test.ts+84 −0packages/question/src/react/resolved-actions.tsx+75 −0packages/question/src/react/use-questionnaire-cancel.test.ts+68 −0packages/question/src/react/use-questionnaire-definition.test.ts+103 −0packages/question/src/react/use-questionnaire-lifecycle.test.ts+83 −0packages/question/src/react/use-questionnaire-option-growth.test.ts+139 −0packages/question/src/react/use-questionnaire-refresh-save.test.ts+133 −0packages/question/src/react/use-questionnaire-save.test.ts+136 −0packages/question/src/react/use-questionnaire.test-fixtures.ts+116 −0packages/question/src/react/use-questionnaire.test.ts+12 −14packages/question/src/react/use-questionnaire.ts+17 −520scripts/design-contract/exceptions/dynamic-editor.json+51 −37scripts/design-contract/exceptions/dynamic-packages.json+24 −10scripts/design-contract/exceptions/dynamic-web.json+17 −3