57 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
root f416950556 fix: require durable AgentRun dispatch admission
Move fresh and retry runner dispatch into AgentRun command admission, remove process-local job creation and secret persistence, and split oversized modules by responsibility.

Co-Authored-By: Codex <noreply@openai.com>
2026-07-10 02:12:02 +02:00
UniDesk Codex 19ea9d0962 fix: enforce workbench terminal seal invariant 2026-07-01 19:41:49 +08:00
UniDesk Codex f0b6c692bd fix: expose mdtodo workbench trace diagnostics 2026-06-30 20:41:32 +08:00
Lyon 8a7e17cc43 fix: inherit postgres sslmode from project db url (#2191) 2026-06-26 14:47:07 +08:00
Lyon 869ac9b73a fix: assign promoted seq to workbench inputs (#2178) 2026-06-26 05:56:58 +08:00
Lyon b0f36a3789 feat: persist workbench session inputs (#2175) 2026-06-26 05:10:24 +08:00
lyon 686e415473 fix: decouple postgres write readiness from durable reads 2026-06-25 10:45:51 +08:00
Lyon deef52bdc6 fix(workbench): emit session message outbox snapshots (#2065) 2026-06-24 21:14:52 +08:00
Lyon e98b3e2f17 fix: add workbench aggregate event stream (#2064) 2026-06-24 20:04:21 +08:00
Lyon 64bee6e784 fix(runtime): bound cloud db query timeout (#1979) 2026-06-23 19:00:00 +08:00
Lyon 0d0fdd0b51 fix(workbench): bound durable read fan-out (#1954) 2026-06-23 06:48:49 +08:00
Lyon e23e9522d1 fix: keep workbench alive on postgres timeout (#1831) 2026-06-21 19:20:34 +08:00
lyon b776a9631a fix(auth): reset postgres pool after transient timeout 2026-06-21 11:43:31 +08:00
Lyon 8b529c39a0 fix(workbench): retry transient runtime store reads (#1797) 2026-06-21 09:16:23 +08:00
lyon 7ac200cd7e fix: expose retryable projection gaps 2026-06-21 04:14:58 +08:00
lyon adba4a4354 fix: contain postgres unhandled connection timeouts 2026-06-21 04:00:50 +08:00
lyon cf13bf80a9 fix: contain postgres projection timeouts 2026-06-21 03:45:23 +08:00
lyon 183cf653f4 fix: resequence existing workbench trace migration 2026-06-20 20:43:37 +08:00
lyon 482218f2cc fix: resequence workbench trace migration 2026-06-20 20:34:15 +08:00
lyon 69d5264360 fix: make workbench trace migration idempotent 2026-06-20 20:24:48 +08:00
lyon bad5a478bd fix: recover Workbench terminal outbox projection 2026-06-20 20:12:01 +08:00
lyon 800f674d5c fix: recover AgentRun terminal projection 2026-06-20 20:05:13 +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 11e2f08e70 fix: order workbench sessions by updated desc 2026-06-20 15:36:41 +08:00
lyon 6468263672 fix: thin workbench session list projection 2026-06-20 13:24:49 +08:00
Lyon acd9831149 Fix workbench trace projection authority (#1696) 2026-06-20 12:47:18 +08:00
lyon c8ff65f11f fix: reuse proven runtime readiness for workbench reads 2026-06-20 12:17:54 +08:00
lyon 793f0f39a4 fix: use projected trace cursor as workbench authority 2026-06-20 10:55:11 +08:00
Lyon f637f32631 fix: parallelize workbench read-model fact reads (#1680) 2026-06-20 10:29:00 +08:00
Lyon 57ba729fca fix: reduce workbench read-model fact scans (#1676) 2026-06-20 10:02:38 +08:00
lyon 4e64058614 feat: read workbench get from durable facts 2026-06-20 09:15:59 +08:00
lyon 6dd02cabc7 feat: add durable workbench facts store 2026-06-20 08:45:51 +08:00
lyon c318e8eadf fix: 支持 runtime store 连接池 YAML 配置 2026-06-20 08:01:59 +08:00
lyon 3f83852f60 fix: persist workbench projection cursor 2026-06-19 21:20:11 +08:00
lyon 063633f8e2 fix: stagger workbench background db scans 2026-06-19 16:54:43 +08:00
lyon 4d62b1be57 fix: reduce durable workbench trace read pressure 2026-06-19 12:30:43 +08:00
lyon 4500fb6486 feat(workbench): 持久化 Code Agent trace 投影 2026-06-17 11:58:07 +08:00
Lyon 9279c5f819 fix: use libpq ssl semantics for runtime postgres (#1143) 2026-06-13 21:40:45 +08:00
Codex Agent 3e7131f6ab refactor: converge hwpod node-ops channel 2026-06-05 17:23:56 +08:00
Codex Agent d6769bf1d3 fix: remove v02 authorization residue 2026-06-05 14:00:13 +08:00
Lyon fc411b00f8 fix: remove legacy device pod grants authority (#906)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-05 12:02:51 +08:00
Lyon 48e3d24ad6 fix: converge v02 authorization on OpenFGA (#899)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-05 11:11:15 +08:00
Codex b7285b30b1 feat(workbench): share account workspace across web and cli 2026-06-01 21:31:26 +08:00
Codex 671303d2b9 feat: add v02 access device pod authority 2026-05-29 02:15:55 +08:00
Codex a0869c5afa refactor: migrate v02 cloud api to TypeScript 2026-05-29 00:33:22 +08:00
Code Queue Review a729f19f78 fix: honor runtime db ssl mode in postgres adapter 2026-05-23 04:23:43 +00:00
Code Queue Review 0d2ebf1779 fix: classify pg hba no-encryption as ssl 2026-05-23 03:13:09 +00:00