Jev: orchestrate durable conversation processing and Planner jobs #263MergedMaggieAppletonmerged 1 commit intomainfromrefs/pull/263/headConversationFiles changed109 files changed+15089-0StackedSplitapps/server/src/chat/job-authenticated-memory.test-fixtures.ts+97 −0apps/server/src/chat/job-card-memory.test-fixtures.ts+131 −0apps/server/src/chat/job-card-memory.test.ts+54 −0apps/server/src/chat/job-heading-fencing.test.ts+134 −0apps/server/src/chat/job-heading-memory.test-fixtures.ts+69 −0apps/server/src/chat/job-heading-memory.test.ts+75 −0apps/server/src/chat/job-prompt-card.test-fixtures.ts+145 −0apps/server/src/chat/job-prompt-prose.test.ts+176 −0apps/server/src/chat/job-prompt-scripted-harness.test-fixtures.ts+156 −0apps/server/src/chat/job-prompt-scripted-harness.test.ts+150 −0apps/server/src/chat/job-prompt-suggest.test.ts+146 −0apps/server/src/chat/job-scripted-harness.test-fixtures.ts+122 −0apps/server/src/chat/job-scripted-harness.test.ts+185 −0apps/server/src/config-conversation-bounds.test.ts+44 −0apps/server/src/config-conversation.test-fixtures.ts+46 −0apps/server/src/config-conversation.test.ts+32 −0apps/server/src/config.test.ts+5 −0apps/server/src/config.ts+27 −0apps/server/src/conversation-plan/card-effect-prompts.ts+107 −0apps/server/src/conversation-plan/card-effect-scoped.ts+116 −0apps/server/src/conversation-plan/card-effect-suggestion.ts+50 −0apps/server/src/conversation-plan/card-effect-targets.ts+91 −0apps/server/src/conversation-plan/card-mirror-runner.ts+43 −0apps/server/src/conversation-plan/card-mirror.ts+62 −0apps/server/src/conversation-plan/card-prompts.ts+42 −0apps/server/src/conversation-plan/cards-1.test.ts+143 −0apps/server/src/conversation-plan/cards-2.test.ts+134 −0apps/server/src/conversation-plan/cards-3.test.ts+207 −0apps/server/src/conversation-plan/cards-4.test.ts+157 −0apps/server/src/conversation-plan/cards-5.test.ts+145 −0apps/server/src/conversation-plan/cards-6.test.ts+181 −0apps/server/src/conversation-plan/cards-7.test.ts+223 −0apps/server/src/conversation-plan/cards-8.test.ts+172 −0apps/server/src/conversation-plan/cards-9.test.ts+105 −0apps/server/src/conversation-plan/cards.test-fixtures.ts+194 −0apps/server/src/conversation-plan/cards.ts+35 −0apps/server/src/conversation-plan/job-context.test.ts+326 −0apps/server/src/conversation-plan/job-context.ts+162 −0apps/server/src/conversation-plan/job-prompts-sources.test.ts+114 −0apps/server/src/conversation-plan/job-prompts.test.ts+115 −0apps/server/src/conversation-plan/job-prompts.ts+186 −0apps/server/src/conversation-plan/job-scripted-refine-retry.test-fixtures.ts+172 −0apps/server/src/conversation-plan/job-scripted-refine-retry.test.ts+230 −0apps/server/src/conversation-plan/option-admission.test.ts+530 −0apps/server/src/conversation-plan/pipeline-recommendation-1.test.ts+65 −0apps/server/src/conversation-plan/planner-job-interruption.ts+47 −0apps/server/src/conversation-plan/planner-job-support.ts+82 −0apps/server/src/conversation-plan/planner-job-types.ts+36 −0apps/server/src/conversation-plan/planner-jobs-completion.test.ts+122 −0apps/server/src/conversation-plan/planner-jobs-failure.test.ts+114 −0apps/server/src/conversation-plan/planner-jobs-interruption.test.ts+133 −0apps/server/src/conversation-plan/planner-jobs-memory-failure.test.ts+88 −0apps/server/src/conversation-plan/planner-jobs-memory.test-fixtures.ts+142 −0apps/server/src/conversation-plan/planner-jobs-memory.test.ts+78 −0apps/server/src/conversation-plan/planner-jobs-receipt-failure.test.ts+60 −0apps/server/src/conversation-plan/planner-jobs-receipt.test.ts+109 −0apps/server/src/conversation-plan/planner-jobs-retry.test.ts+130 −0apps/server/src/conversation-plan/planner-jobs.test-fixtures.ts+88 −0apps/server/src/conversation-plan/planner-jobs.test.ts+125 −0apps/server/src/conversation-plan/planner-jobs.ts+231 −0apps/server/src/conversation-plan/processor-card-context.ts+33 −0apps/server/src/conversation-plan/processor-commands.ts+185 −0apps/server/src/conversation-plan/processor-fields.ts+48 −0apps/server/src/conversation-plan/processor-outbox.ts+99 −0apps/server/src/conversation-plan/processor-research-admission.ts+125 −0apps/server/src/conversation-plan/processor-research-consent.ts+90 −0apps/server/src/conversation-plan/processor-research-quotes.ts+96 −0apps/server/src/conversation-plan/processor-run.ts+199 −0apps/server/src/conversation-plan/processor-scoped-save.ts+115 −0apps/server/src/conversation-plan/processor-types.ts+43 −0apps/server/src/conversation-plan/prompt-scripted-harness.test.ts+244 −0apps/server/src/conversation-plan/research-offer-detection-card-focus.test.ts+242 −0apps/server/src/conversation-plan/research-offer-detection-comparison-guards.test.ts+351 −0apps/server/src/conversation-plan/research-offer-detection-concern-guards.test.ts+257 −0apps/server/src/conversation-plan/research-offer-detection-positive.test.ts+282 −0apps/server/src/conversation-plan/research-offer-detection.test-fixtures.ts+348 −0apps/server/src/conversation-plan/runtime-acceptance.test.ts+85 −0apps/server/src/conversation-plan/runtime-card.test.ts+132 −0apps/server/src/conversation-plan/runtime-lifecycle.test.ts+179 −0apps/server/src/conversation-plan/runtime-save.test.ts+188 −0apps/server/src/conversation-plan/runtime.ts+187 −0apps/server/src/conversation-plan/scripted-harness.test-driver.ts+200 −0apps/server/src/conversation-plan/scripted-harness.test.ts+108 −0apps/server/src/conversation-plan/scripted-script.test.ts+84 −0apps/server/src/conversation-plan/scripted-script.ts+79 −0apps/server/src/conversation-plan/service-correction.test-fixtures.ts+169 −0apps/server/src/conversation-plan/service-corrections.test.ts+131 −0apps/server/src/conversation-plan/service-effect-commit.test.ts+158 −0apps/server/src/conversation-plan/service-effect-retry.test.ts+179 −0apps/server/src/conversation-plan/service-inference.test.ts+218 −0apps/server/src/conversation-plan/service-legacy-withdrawal.test.ts+90 −0apps/server/src/conversation-plan/service-memory-failure.test.ts+87 −0apps/server/src/conversation-plan/service-memory.test-fixtures.ts+112 −0apps/server/src/conversation-plan/service-memory.test.ts+87 −0apps/server/src/conversation-plan/service-mirror-race.test.ts+159 −0apps/server/src/conversation-plan/service-order.test.ts+56 −0apps/server/src/conversation-plan/service-queue.test.ts+242 −0apps/server/src/conversation-plan/service-scoped-save.test.ts+98 −0apps/server/src/conversation-plan/service-scoped-stale.test.ts+107 −0apps/server/src/conversation-plan/service-scoped-support.test.ts+179 −0apps/server/src/conversation-plan/service-scoped.test-fixtures.ts+212 −0apps/server/src/conversation-plan/service.test-fixtures.ts+146 −0apps/server/src/conversation-plan/service.ts+115 −0apps/server/src/plan/conversation-processor-persistence.test.ts+35 −0apps/server/src/questions/conversation-capacity.test.ts+314 −0apps/server/src/questions/conversation-card-7.test.ts+205 −0apps/server/src/questions/planner-lifecycle-durability.test.ts+242 −0e2e/harness/scripted-context.ts+45 −0e2e/harness/scripted-planner.ts+218 −0