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