149 Commits

Author SHA1 Message Date
Peter Steinberger
9a8da0d4db refactor: move runtime json state imports to doctor 2026-05-07 22:01:02 +01:00
Peter Steinberger
49d518794c refactor: move commitments state to sqlite 2026-05-07 22:01:02 +01:00
Peter Steinberger
ba1d7bac8f refactor: move channel pairing state to sqlite 2026-05-07 22:01:02 +01:00
Peter Steinberger
7c0fdc0f81 refactor: move device and push state to sqlite 2026-05-07 22:01:02 +01:00
Peter Steinberger
169e1405de refactor: move cron runtime state to sqlite 2026-05-07 22:01:02 +01:00
Peter Steinberger
22faa96557 refactor: make sessions sqlite-only 2026-05-07 22:01:01 +01:00
Peter Steinberger
07fc0e26f4 refactor: move session management to sqlite 2026-05-07 22:01:01 +01:00
Peter Steinberger
3513361c69 refactor: move session state migration to doctor
# Conflicts:
#	src/config/sessions/transcript.test.ts
2026-05-07 22:00:59 +01:00
Peter Steinberger
93b966fd5a refactor: remove cron session reaper 2026-05-07 22:00:11 +01:00
Peter Steinberger
6f03786e66 refactor: remove legacy session store cache 2026-05-07 22:00:10 +01:00
Peter Steinberger
2806209fb8 refactor: remove duplicate session status reader 2026-05-07 22:00:10 +01:00
Peter Steinberger
465c4370a6 refactor: remove session maintenance write options 2026-05-07 22:00:10 +01:00
Peter Steinberger
845227aa44 refactor: stop exporting managed media json 2026-05-07 22:00:10 +01:00
Peter Steinberger
f4340356d7 refactor: make sqlite sidecars import-only 2026-05-07 22:00:10 +01:00
Peter Steinberger
31758f0123 refactor: make session cleanup explicit 2026-05-07 22:00:10 +01:00
Peter Steinberger
67b3de0d4a refactor: keep session import in doctor 2026-05-07 22:00:10 +01:00
Peter Steinberger
2d1b78db23 refactor: make sessions json doctor-import only 2026-05-07 22:00:10 +01:00
Peter Steinberger
390b99bf93 refactor: move agent runtime state toward piless 2026-05-07 22:00:10 +01:00
Vincent Koc
b165c0d10a fix(ci): restore main validation 2026-05-07 03:39:26 -07:00
Peter Steinberger
330ba1fa31 refactor: move canvas to plugin surfaces 2026-05-07 09:07:18 +01:00
Peter Steinberger
42ecd5d95e fix(acpx): harden session lifecycle cleanup
Harden ACPX process cleanup with lease-backed ownership verification, startup orphan reaping, reusable cancel semantics, and spawned-session visibility fixes.
2026-05-07 07:30:37 +01:00
Peter Steinberger
71cd132f1f docs: remove refactor notes 2026-05-06 02:40:34 +01:00
Peter Steinberger
7431cb8def docs: detail talk refactor plan 2026-05-06 02:39:15 +01:00
Peter Steinberger
24853ced11 docs: outline unified talk API 2026-05-06 02:39:15 +01:00
Peter Steinberger
538605ff44 [codex] Extract filesystem safety primitives (#77918)
* refactor: extract filesystem safety primitives

* refactor: use fs-safe for file access helpers

* refactor: reuse fs-safe for media reads

* refactor: use fs-safe for image reads

* refactor: reuse fs-safe in qqbot media opener

* refactor: reuse fs-safe for local media checks

* refactor: consume cleaner fs-safe api

* refactor: align fs-safe json option names

* fix: preserve fs-safe migration contracts

* refactor: use fs-safe primitive subpaths

* refactor: use grouped fs-safe subpaths

* refactor: align fs-safe api usage

* refactor: adapt private state store api

* chore: refresh proof gate

* refactor: follow fs-safe json api split

* refactor: follow reduced fs-safe surface

* build: default fs-safe python helper off

* fix: preserve fs-safe plugin sdk aliases

* refactor: consolidate fs-safe usage

* refactor: unify fs-safe store usage

* refactor: trim fs-safe temp workspace usage

* refactor: hide low-level fs-safe primitives

* build: use published fs-safe package

* fix: preserve outbound recovery durability after rebase

* chore: refresh pr checks
2026-05-06 02:15:17 +01:00
Peter Steinberger
9be8d43c31 docs: document installer recovery cleanup 2026-04-27 00:26:02 +01:00
Josh Lehman
51186d2725 feat(codex): run context-engine lifecycle in app-server harness (#70809)
Port the Codex app-server harness onto the context-engine lifecycle, add Codex context projection and compaction integration, and cover bootstrap/history/compaction fallback behavior.

Thanks @jalehman.
2026-04-24 05:06:45 +01:00
Vincent Koc
627c19c5cb docs: add Related sections to remaining CLI, gateway API, and help pages 2026-04-23 20:41:35 -07:00
Vincent Koc
2fb9c7e3e5 docs: add Related sections to remaining platform, reference template, and misc pages 2026-04-23 20:40:15 -07:00
Peter Steinberger
14c4143723 docs: clarify OpenAI GPT-5.5 auth routes 2026-04-23 23:49:17 +01:00
Vincent Koc
2777b089b5 docs: normalize frontmatter titles to sentence case 2026-04-23 13:15:17 -07:00
Vincent Koc
4a2cd533ac docs: remove duplicate H1 where frontmatter title already sets it 2026-04-23 13:11:14 -07:00
Peter Steinberger
89051c6bf6 docs(openai): document GPT-5.5 defaults 2026-04-23 20:19:15 +01:00
Peter Steinberger
834fdc4832 docs: align documentation with current surfaces 2026-04-23 07:25:06 +01:00
Gustavo Madeira Santana
82fe6f50ef QA: organize scenarios by theme 2026-04-17 11:03:47 -04:00
Josh Lehman
5dcf526a43 fix: dedupe replayed exec.finished node events (#67281)
* docs: add async exec duplicate completion investigation

Add an internal refactor note tracing the node exec completion to system event to heartbeat to transcript path for duplicate async exec injections. Document the most likely gateway-side gap as missing idempotency for replayed exec.finished events, and note why plain outbound delivery retry is a weaker fit for duplicate user turns.

Regeneration-Prompt: |
  Investigate a live duplicate async exec completion that appeared as two identical user turns in an OpenClaw session. Trace the completion path from exec producers into enqueueSystemEvent, heartbeat wake scheduling, prompt assembly, and embedded transcript persistence. Decide whether duplicate wake handling, outbound delivery retry, or duplicate completion event ingestion is the more likely cause, cite the exact code locations, and capture the smallest plausible fix seam without making runtime changes.

* fix: dedupe replayed exec finished node events

Add a narrow idempotency guard in the gateway node-event handler for repeated exec.finished events with the same canonical session key and runId. This blocks replayed async exec completions from being enqueued and heartbeated twice into the parent session. Also only request a heartbeat when the system event was actually queued, and add a regression test for duplicate runId injection.

Regeneration-Prompt: |
  Prevent duplicate async exec completion events from being injected twice into the parent session. Keep the scope tight around the highest-confidence path: node exec.finished events entering gateway server-node-events and becoming system-event-driven heartbeat prompts. Add a small idempotency guard keyed by canonical session plus exec runId, avoid broader delivery or retry changes unless needed, and add regression coverage that fails if the same exec.finished replay is enqueued and woken twice.

* fix: note exec finished replay dedupe
2026-04-15 13:06:18 -07:00
Peter Steinberger
b73d8ef7d7 refactor: split qa scenarios into per-file markdown defs 2026-04-08 05:37:17 +01:00
Peter Steinberger
6807e6a89b docs: fix qa refactor heading fence 2026-04-08 02:59:49 +01:00
Peter Steinberger
c0aed59fca refactor: move qa suite definitions into markdown 2026-04-07 23:39:50 +01:00
Vincent Koc
bde4c7995f docs: remove docs/refactor/ directory
Delete all 7 refactor design docs and the zh-CN translations.
Remove the zh-CN nav group from docs.json.

These were orphaned from English nav and accessible only by
direct URL. Internal design docs do not belong on the public
docs site.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 00:45:39 -07:00
Vincent Koc
7b27f8a9ae docs(refactor): replace seam terminology with capability/surface
Align refactor docs with the public capability model vocabulary.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 22:55:32 -07:00
Vincent Koc
de564689da docs(refactor): align plugin SDK plan with public capability model
Add capability plan alignment section with key decisions and required test
matrix. Rename seams to capabilities for consistency.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 10:59:49 -07:00
Peter Steinberger
2580b81bd2 refactor: move channel capability diagnostics into plugins 2026-03-15 22:53:03 -07:00
Peter Steinberger
ad97c581e2 refactor: move channel messaging hooks into plugins 2026-03-15 22:39:00 -07:00
Peter Steinberger
5287ae3c06 docs: update setup wizard wording 2026-03-15 21:40:31 -07:00
Peter Steinberger
aa28d1c711 feat: add firecrawl onboarding search plugin 2026-03-16 03:38:58 +00:00
Peter Steinberger
60bf58ddbc refactor: trim onboarding sdk exports 2026-03-15 19:14:36 -07:00
Peter Steinberger
13bd3db307 chore(docs): drop refactor cleanup tracker 2026-03-09 00:26:20 +00:00
Peter Steinberger
ff4745fc3f refactor(models): split provider discovery helpers 2026-03-09 00:26:20 +00:00
Peter Steinberger
c29b098744 refactor(models): split models.json planning from writes 2026-03-09 00:26:20 +00:00