deepseek-harness/.agents/notes/archived/architecture
Turtle bec6805d6a refactor(session-persistence)!: handle-based seam with a lifecycle-owned write path
The persistence seam is now create/open/stat/list returning per-session
SessionHandles (read/append/flush/close); every log read and write flows
through the owning handle. The seam package exports only the service and
handle contracts, consumer-visible errors, and pure durable-data
validation helpers; each backend owns its complete storage runtime, and
the shared contract suites pin equivalent observable behavior. The
backend routes published sessions' live events by id into the active
write handle; agent-loop only acquires, seeds, and closes the handle.
Resume appends interruptedTurnClosers through its write handle;
session-query owns the revision-keyed cold cache. Legacy-only surfaces
are removed in the same swap: locate/readRaw/supportsRawArtifacts, the
legacy event-shape read migration, zstd torn-frame salvage,
DSH_SESSION_JSONL, and hook transcript_path population; a torn final
zstd frame is discarded whole; the session-list cold blank probe returns
on stat metadata (eventCount derived from the last physical row,
sizeBytes). The WebUI ZIP export serializes the logical log from a read
handle, so both backends export identically.

Refs #3245
2026-09-01 23:19:02 +08:00
..
2026-06-11-custom-schema-dsl.i18n.yaml docs(notes): restore PR 639 history to archive 2026-07-26 23:26:00 +08:00
2026-06-11-custom-schema-dsl.md docs(notes): restore PR 639 history to archive 2026-07-26 23:26:00 +08:00
2026-06-11-custom-schema-dsl.zh.md docs(notes): restore PR 639 history to archive 2026-07-26 23:26:00 +08:00
2026-06-11-tool-schemas-in-prompt-assembly.i18n.yaml docs(notes): aggressive archive sweep of low-value decision records 2026-07-28 00:00:51 +08:00
2026-06-11-tool-schemas-in-prompt-assembly.md docs(notes): aggressive archive sweep of low-value decision records 2026-07-28 00:00:51 +08:00
2026-06-11-tool-schemas-in-prompt-assembly.zh.md docs(notes): aggressive archive sweep of low-value decision records 2026-07-28 00:00:51 +08:00
2026-06-15-turn-enclosure-invariant.i18n.yaml refactor(session): remove synthetic log-only turns 2026-07-28 14:41:51 +08:00
2026-06-15-turn-enclosure-invariant.md refactor(session): remove synthetic log-only turns 2026-07-28 14:41:51 +08:00
2026-06-15-turn-enclosure-invariant.zh.md refactor(session): remove synthetic log-only turns 2026-07-28 14:41:51 +08:00
2026-06-18-shared-persistence-write-coordinator.i18n.yaml refactor(session-persistence)!: handle-based seam with a lifecycle-owned write path 2026-09-01 23:19:02 +08:00
2026-06-18-shared-persistence-write-coordinator.md refactor(session-persistence)!: handle-based seam with a lifecycle-owned write path 2026-09-01 23:19:02 +08:00
2026-06-18-shared-persistence-write-coordinator.zh.md refactor(session-persistence)!: handle-based seam with a lifecycle-owned write path 2026-09-01 23:19:02 +08:00
2026-06-20-extract-example-app-packages.i18n.yaml docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
2026-06-20-extract-example-app-packages.md docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
2026-06-20-extract-example-app-packages.zh.md docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
2026-06-20-package-hierarchy.i18n.yaml docs(notes): aggressive archive sweep of low-value decision records 2026-07-28 00:00:51 +08:00
2026-06-20-package-hierarchy.md docs(notes): aggressive archive sweep of low-value decision records 2026-07-28 00:00:51 +08:00
2026-06-20-package-hierarchy.zh.md docs(notes): aggressive archive sweep of low-value decision records 2026-07-28 00:00:51 +08:00
2026-07-02-result-time-applied-hunk-diffs.i18n.yaml docs(notes): aggressive archive sweep of low-value decision records 2026-07-28 00:00:51 +08:00
2026-07-02-result-time-applied-hunk-diffs.md docs(notes): aggressive archive sweep of low-value decision records 2026-07-28 00:00:51 +08:00
2026-07-02-result-time-applied-hunk-diffs.zh.md docs(notes): aggressive archive sweep of low-value decision records 2026-07-28 00:00:51 +08:00
2026-07-03-filesystem-directory-listing-seam.i18n.yaml docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
2026-07-03-filesystem-directory-listing-seam.md docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
2026-07-03-filesystem-directory-listing-seam.zh.md docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
2026-07-05-windows-fs-permissions.i18n.yaml docs(notes): restore PR 639 history to archive 2026-07-26 23:26:00 +08:00
2026-07-05-windows-fs-permissions.md docs(notes): restore PR 639 history to archive 2026-07-26 23:26:00 +08:00
2026-07-05-windows-fs-permissions.zh.md docs(notes): restore PR 639 history to archive 2026-07-26 23:26:00 +08:00
2026-07-19-gui-layering-and-rpc-protocol.i18n.yaml docs(api): describe Connection-owned transport 2026-08-27 22:26:30 +08:00
2026-07-19-gui-layering-and-rpc-protocol.md docs(api): describe Connection-owned transport 2026-08-27 22:26:30 +08:00
2026-07-19-gui-layering-and-rpc-protocol.zh.md docs(api): describe Connection-owned transport 2026-08-27 22:26:30 +08:00
2026-07-22-tui-interactive-extension-service.i18n.yaml cleanup: remove TUI package and legacy dsh entrypoints 2026-08-04 13:20:28 +08:00
2026-07-22-tui-interactive-extension-service.md cleanup: remove TUI package and legacy dsh entrypoints 2026-08-04 13:20:28 +08:00
2026-07-22-tui-interactive-extension-service.zh.md cleanup: remove TUI package and legacy dsh entrypoints 2026-08-04 13:20:28 +08:00
2026-07-23-unified-session-query-service.i18n.yaml docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
2026-07-23-unified-session-query-service.md docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
2026-07-23-unified-session-query-service.zh.md docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
2026-07-24-dsh-commander-argument-adapter.i18n.yaml docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
2026-07-24-dsh-commander-argument-adapter.md docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
2026-07-24-dsh-commander-argument-adapter.zh.md docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
2026-07-27-tui-chat-channel-module-split.i18n.yaml cleanup: remove TUI package and legacy dsh entrypoints 2026-08-04 13:20:28 +08:00
2026-07-27-tui-chat-channel-module-split.md cleanup: remove TUI package and legacy dsh entrypoints 2026-08-04 13:20:28 +08:00
2026-07-27-tui-chat-channel-module-split.zh.md cleanup: remove TUI package and legacy dsh entrypoints 2026-08-04 13:20:28 +08:00
2026-07-28-consolidated-tui-presentation.i18n.yaml cleanup: remove TUI package and legacy dsh entrypoints 2026-08-04 13:20:28 +08:00
2026-07-28-consolidated-tui-presentation.md cleanup: remove TUI package and legacy dsh entrypoints 2026-08-04 13:20:28 +08:00
2026-07-28-consolidated-tui-presentation.zh.md cleanup: remove TUI package and legacy dsh entrypoints 2026-08-04 13:20:28 +08:00
2026-07-28-dsh-native-typescript-source-launch.i18n.yaml docs(notes): archive low-value records 2026-08-07 22:52:19 +08:00
2026-07-28-dsh-native-typescript-source-launch.md docs(notes): archive low-value records 2026-08-07 22:52:19 +08:00
2026-07-28-dsh-native-typescript-source-launch.zh.md docs(notes): archive low-value records 2026-08-07 22:52:19 +08:00
2026-08-04-websocket-downlink-carrier.i18n.yaml docs(api): describe Connection-owned transport 2026-08-27 22:26:30 +08:00
2026-08-04-websocket-downlink-carrier.md docs(api): describe Connection-owned transport 2026-08-27 22:26:30 +08:00
2026-08-04-websocket-downlink-carrier.zh.md docs(api): describe Connection-owned transport 2026-08-27 22:26:30 +08:00
2026-08-11-plugin-settings-tabs.i18n.yaml docs(notes): archive low-value records 2026-08-22 15:15:08 +08:00
2026-08-11-plugin-settings-tabs.md docs(notes): archive low-value records 2026-08-22 15:15:08 +08:00
2026-08-11-plugin-settings-tabs.zh.md docs(notes): archive low-value records 2026-08-22 15:15:08 +08:00
2026-08-18-sqlite-physical-chunk-row-compression.i18n.yaml refactor(session)!: remove SQLite persistence backend 2026-08-31 13:23:07 +08:00
2026-08-18-sqlite-physical-chunk-row-compression.md refactor(session)!: remove SQLite persistence backend 2026-08-31 13:23:07 +08:00
2026-08-18-sqlite-physical-chunk-row-compression.zh.md refactor(session)!: remove SQLite persistence backend 2026-08-31 13:23:07 +08:00