Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .agents/durable-facts.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@
{"id":"2026-08-30-thread-id-recreation","recorded_at":"2026-08-30T01:34:28Z","scope":"server/orchestration","fact":"A failed first-send bootstrap may soft-delete and then recreate the same client-minted thread ID as a new incarnation. Projectors clear old per-thread rows on thread.created, replay preserves attachments when a later creation supersedes deletion, and WebSocket creation fences on ThreadDeletionReactor.drainThrough(createSequence) so old cleanup cannot stop new resources.","source_commits":["98d83492e8fee00f878d4af5e50101846fe71e3a","2c748f28dcf2c50ca156705410e64027289b6ca5"],"source_paths":["apps/server/src/orchestration/commandInvariants.ts","apps/server/src/orchestration/Layers/ProjectionPipeline.ts","apps/server/src/orchestration/Layers/ThreadDeletionReactor.ts","apps/server/src/persistence/Layers/OrchestrationEventStore.ts","apps/server/src/ws.ts"],"supersedes":[]}
{"id":"2026-08-30-codex-jsonl-linear-framing","recorded_at":"2026-08-30T01:34:28Z","scope":"provider/codex-protocol","fact":"Codex app-server JSONL input framing must stay linear in input size: unfinished lines remain string fragments, each decoded chunk is scanned once for newlines, and fragments join only for a complete line or EOF. Repeatedly concatenating the remainder and splitting the whole buffer would restore quadratic copying for large messages.","source_commits":["8406ba5df429faf78c04bf4b9fd9a89ffc12274b","2c748f28dcf2c50ca156705410e64027289b6ca5"],"source_paths":["packages/effect-codex-app-server/src/protocol.ts","packages/effect-codex-app-server/src/protocol.test.ts"],"supersedes":[]}
{"id":"2026-08-30-prime-correlated-prompt-lifecycle","recorded_at":"2026-08-30T01:34:28Z","scope":"provider/prime-agent","fact":"Prime foreground prompt ownership has two explicit modes and is never inferred from text or generic busy state. The optional correlated lifecycle is enabled only by explicit capability negotiation; its correlation stays provider-private and generation-bound, and recovery requires complete attributed event continuity without synthesizing snapshot output. Stock daemons use the conservative observed-activity busy path.","source_commits":["058193588f66d8b455cd49e9b014bc9fde4b0447","9a4de4c08ee62dea2b5ad68ff8bf022addb67d61","486af3ea52180c3dcda51b6411ffaeecf9987d08"],"source_paths":["docs/internals/prime-agent-daemon-parity.md","docs/user/providers-prime-agent.md","apps/server/src/provider/prime/PrimeAgentDaemonEvents.ts","apps/server/src/provider/prime/PrimeAgentDaemonAdapter.ts","apps/server/src/provider/prime/PrimeAgentDaemonSessionRuntime.ts"],"supersedes":[]}
{"id":"2026-08-30-runtime-home-default","recorded_at":"2026-08-31T14:45:36Z","scope":"server/runtime-home","fact":"Every Pylon server launch path defaults its runtime home to ~/.pylon-code: the t3 CLI's resolveBaseDir, the desktop's SSH remote launcher scripts, the WSL secondary backend, and the dev runner's implicit home. ~/.t3 is T3 Code's install and is never adopted as a fallback, because its database carries upstream migration numbering. --base-dir and T3CODE_HOME remain the unchanged, T3-compatible overrides. When a launch resolves the default base dir, finds no state there, and sees an older ~/.t3/userdata, warnAboutLegacyRuntimeHome writes one hint to stderr and never to the logger: auth, connect, and project resolve their base dir through the same helper and emit JSON payloads on the logger's stream, and their quietLogs guard is installed too late to suppress it. Migration moves the userdata state directory, not its parent: settings.json and secrets are derived from stateDir and live inside userdata, while the sibling caches and worktrees directories are disposable or referenced by absolute path and must stay. The SSH launch script names ~/.t3 only to retire a previous launcher's state directory once, and signals a recorded pid only after confirming its process arguments still carry serve --host 127.0.0.1 and --base-dir $HOME/.t3; where ps cannot report arguments it leaves the process running and still retires the directory. The maintainer database scripts keep their source home and their destructive-write guard separate: both read or seed from ~/.pylon-code but refuse to write to either runtime home, and migrate-dev-db applies that refusal before it checks whether a source exists.","source_commits":["a5cfa5da266c3e10ff5b7b049aea8035c222282a","8ec50a068a278b385428b5c131bf093ecaf7079c","ec31498eb69ebe7c6f15985ecb8320205a0ad872","5814f1a62a91d852b752562c39ad722323f999cc","fc7bda6e1fe7f058891d741ebea5116ce0ba4e37","1ace841de68d5e4563647182621d633a44025a81","8c298a75b153dba825114fe5601d26e2339c3f01","20bae41009f8cbb43ed7cb044ba024f5c6971ea5","a4ddf3266e6175de0cb76ffc5f8cc3ec3d180bac","66401f073eb502fd00e9719a18d6e8343cb500d9"],"source_paths":["apps/server/src/os-jank.ts","apps/server/src/os-jank.test.ts","apps/server/src/cli/config.ts","apps/server/src/cli/config.test.ts","apps/server/src/cli/triage.ts","packages/ssh/src/tunnel.ts","packages/ssh/src/tunnel.test.ts","apps/server/scripts/migrate-dev-db.ts","apps/server/scripts/t3-sqlite-state.ts","scripts/dev-runner.ts","docs/user/install.md","docs/user/remote-access.md","docs/operations/observability.md","docs/internals/scripts.md"],"supersedes":[]}
Loading