summaryrefslogtreecommitdiffhomepage
path: root/specs/18-parallel-workstream-map.md
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-02-06 10:02:31 -0600
committerGitHub <[email protected]>2026-02-06 10:02:31 -0600
commit2c58dd6203df7806f57ef6b29672091cb764e871 (patch)
tree10fca96d3098465b497f78e29de8d0a585c4dac3 /specs/18-parallel-workstream-map.md
parenta4bc883595df9ea0f752079519081bc602408553 (diff)
downloadopencode-2c58dd6203df7806f57ef6b29672091cb764e871.tar.gz
opencode-2c58dd6203df7806f57ef6b29672091cb764e871.zip
chore: refactoring and tests, splitting up files (#12495)
Diffstat (limited to 'specs/18-parallel-workstream-map.md')
-rw-r--r--specs/18-parallel-workstream-map.md51
1 files changed, 51 insertions, 0 deletions
diff --git a/specs/18-parallel-workstream-map.md b/specs/18-parallel-workstream-map.md
new file mode 100644
index 000000000..8a769f673
--- /dev/null
+++ b/specs/18-parallel-workstream-map.md
@@ -0,0 +1,51 @@
+## Parallel workstream map
+
+Use this as the assignment sheet for running multiple agents at once.
+
+---
+
+### Workstreams
+
+1. `specs/09-session-page-decomposition.md`
+2. `specs/10-layout-page-decomposition.md`
+3. `specs/11-prompt-input-and-optimistic-state.md`
+4. `specs/12-global-sync-domain-split.md`
+5. `specs/13-file-context-domain-split.md`
+6. `specs/14-server-health-and-row-dedupe.md`
+7. `specs/15-runtime-adapter-type-safety.md`
+8. `specs/16-i18n-hardening-and-parity.md`
+9. `specs/17-unit-test-foundation.md`
+
+---
+
+### File-ownership matrix
+
+| Spec | Primary ownership | Avoid editing |
+| ---- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
+| 09 | `pages/session.tsx`, `pages/session/**` | `pages/layout.tsx`, `components/prompt-input.tsx`, `context/global-sync.tsx`, `context/file.tsx` |
+| 10 | `pages/layout.tsx`, `pages/layout/**` | `pages/session.tsx`, `components/prompt-input.tsx`, `context/global-sync.tsx` |
+| 11 | `components/prompt-input.tsx`, `components/prompt-input/**`, `context/sync.tsx` (optimistic API only) | `pages/session.tsx`, `pages/layout.tsx`, `context/global-sync.tsx`, `context/file.tsx` |
+| 12 | `context/global-sync.tsx`, `context/global-sync/**` | `context/file.tsx`, `components/prompt-input.tsx`, page files |
+| 13 | `context/file.tsx`, `context/file/**`, `utils/scoped-cache.ts` (only when file-view cache extraction needs it) | `context/global-sync.tsx`, `components/prompt-input.tsx`, page files |
+| 14 | `components/dialog-select-server.tsx`, `components/status-popover.tsx`, `context/server.tsx`, shared server utility/component | terminal/speech/serialize files |
+| 15 | `components/terminal.tsx`, `utils/speech.ts`, `addons/serialize.ts`, `components/dialog-select-model.tsx`, adapter utilities | server status/dialog/context files |
+| 16 | `context/language.tsx`, `i18n/*.ts`, `components/dialog-custom-provider.tsx`, `pages/directory-layout.tsx` | major page/context refactors |
+| 17 | `package.json` (test scripts), `happydom.ts`, `src/**/*.test.*` | product code files in other specs unless strictly needed |
+
+---
+
+### Recommended execution order (if all start together)
+
+- Start all 9 in parallel.
+- Merge low-conflict streams first: 12, 13, 14, 15, 16, 17.
+- Then merge 09, 10, 11 (largest diff sizes and highest rebase probability).
+
+---
+
+### Integration checkpoint
+
+After all streams merge, run a full verification pass in `packages/app`:
+
+- `bun run typecheck`
+- `bun run test:unit` (from spec 17)
+- targeted e2e smoke for session/layout/prompt/server/terminal flows