Commit Graph

41 Commits

Author SHA1 Message Date
root 8ad5976a07 feat: 拉通 Workbench 纯 Kafka 实时链路 2026-07-10 10:22:28 +02:00
root efe4b62a0b fix: make Kafka projection the sole Workbench authority 2026-07-10 06:51:09 +02:00
root ce83ffdf49 feat: make Kafka projector the Workbench realtime authority 2026-07-10 05:23:21 +02:00
UniDesk Codex 124e20cd47 fix: seal workbench failed terminal body 2026-07-01 21:07:13 +08:00
UniDesk Codex 19ea9d0962 fix: enforce workbench terminal seal invariant 2026-07-01 19:41:49 +08:00
root a2a8bd634b fix: preserve workbench launch context in session facts 2026-06-28 11:27:20 +00:00
lyon1998 09327f1ded fix: keep workbench projection checkpoint behind events 2026-06-28 12:52:58 +08:00
lyon 2579371b7f obs(workbench): add OTel read and auth spans for #1078 2026-06-27 03:55:53 +08:00
Lyon 590b662317 fix: preserve cancel prompt after event checkpoints (#2154)
Co-authored-by: root <root@lyon.remote>
2026-06-25 19:42:10 +08:00
Lyon 5f3b9f7fad fix: aggregate workbench terminal projection rows (#2153)
Co-authored-by: root <root@lyon.remote>
2026-06-25 19:29:57 +08:00
root db9da40ee2 fix: keep workbench trace terminal facts scoped per trace 2026-06-25 11:02:32 +00:00
root fa0f769fc2 fix: stabilize workbench assistant projection identity 2026-06-25 10:38:48 +00:00
Lyon d608c272ea fix: seal terminal workbench timing (#2118) 2026-06-25 13:12:42 +08:00
lyon a94113a4b9 fix: keep workbench projection writes durable without reads 2026-06-25 10:23:17 +08:00
lyon f3967a5f6d fix: backfill terminal workbench trace events 2026-06-25 09:22:58 +08:00
lyon 8bae0ef604 fix: keep workbench projection facts trace-scoped 2026-06-25 08:36:55 +08:00
Lyon 19eee3b734 fix: seal workbench final response as message part (#2082) 2026-06-25 04:47:20 +08:00
Lyon e390becd72 fix(workbench): keep projected trace times monotonic (#2054) 2026-06-24 17:49:04 +08:00
Lyon b49f2a5ed2 fix(workbench): surface projection fallback failures (#2052) 2026-06-24 17:10:07 +08:00
Lyon e0ad20edc9 fix(workbench): fail visibly on projection fact write errors (#2046) 2026-06-24 15:29:12 +08:00
Lyon fbc23d20a9 fix(workbench): persist user message through event projection (#2045) 2026-06-24 15:01:46 +08:00
Lyon 10e892ce95 fix(workbench): preserve terminal final text and timing (#2042) 2026-06-24 14:21:21 +08:00
Lyon 50734e5117 fix(workbench): keep projected turn start time stable (#2039) 2026-06-24 13:08:27 +08:00
Lyon 8274a31f37 fix(workbench): keep sealed turn timing immutable (#2033) 2026-06-24 09:25:31 +08:00
Lyon 1018f1ef37 fix(workbench): seal timing to source event time (#2025) 2026-06-24 06:47:49 +08:00
Lyon 4f7b53f36f fix(workbench): persist admitted turn messages (#1983)
Co-authored-by: root <root@lyon.remote>
2026-06-23 19:43:21 +08:00
Lyon 4e0e52af80 fix(workbench): project message timing facts from events (#1967) 2026-06-23 13:27:16 +08:00
Lyon f4d961a33e fix: keep Workbench turn timing command-scoped (#1899) 2026-06-22 15:51:52 +08:00
lyon 437ea223bb fix: stop stale agentrun unreachable terminal projection 2026-06-22 05:56:24 +08:00
lyon 6e05c05732 fix(workbench): seal message status from turn projection 2026-06-21 07:52:59 +08:00
lyon b6dc2b4126 fix(workbench): seal final response lifecycle 2026-06-21 07:26:22 +08:00
lyon 7ac200cd7e fix: expose retryable projection gaps 2026-06-21 04:14:58 +08:00
lyon a6b5e9a975 fix: harden workbench agent retry projection 2026-06-21 02:43:33 +08:00
Lyon cd981355c6 fix(workbench): keep per-turn message timing isolated (#1768) 2026-06-21 00:56:12 +08:00
Lyon b254c1875e feat: PJ2026-0104010803 P1 durable projection outbox + DB constraints + error visibility (#1754)
DB migration (0001_cloud_core_skeleton.sql):
- Add (trace_id, source_event_id) unique index on workbench_trace_events
- Add (trace_id, projected_seq) unique index on workbench_trace_events
- Add workbench_projection_outbox table with BIGSERIAL outbox_seq

Schema (schema.ts):
- Bump CLOUD_RUNTIME_DURABLE_ADAPTER_SCHEMA_VERSION to v5
- Add workbench_projection_outbox to CLOUD_RUNTIME_DURABLE_TABLE_COLUMNS

Runtime store (runtime-store.ts):
- Add persistWorkbenchProjectionOutbox method
- Add readWorkbenchProjectionOutbox method for SSE cursor replay
- Write outbox rows in writeWorkbenchFacts for trace events and terminal turns
- Outbox write errors are logged, not silently swallowed

Trace store (code-agent-trace-store.ts):
- persistTraceEvent no longer uses .catch(() => {}) to swallow errors
- Projection write errors are logged with traceId/sourceEventId for diagnostics
- Sync errors also logged instead of empty catch block

SPEC headers updated to draft-2026-06-20-p1-zero-split-durable-realtime

Closes #1747
Refs #1742
2026-06-20 19:29:44 +08:00
lyon 3718b5d77d fix: persist manual workbench sessions 2026-06-20 16:58:31 +08:00
lyon 03942afc5c fix: 收敛 workbench 消息头 timing 投影 2026-06-20 14:54:04 +08:00
lyon 4a9498d720 fix(workbench): expose code agent timing metadata 2026-06-20 13:55:57 +08:00
Lyon acd9831149 Fix workbench trace projection authority (#1696) 2026-06-20 12:47:18 +08:00
lyon e79ea2cb42 feat: persist workbench projection facts 2026-06-20 08:57:21 +08:00
lyon d0eb94ae6a fix: add Workbench projection read model 2026-06-18 23:17:58 +08:00