100 Commits
Author SHA1 Message Date
Josh LehmanandGitHub a2a0e932c8 fix: preserve transcript cursors across embedded turns (#111949)
* fix(agents): preserve transcript generation on flush (clawdbot-85c)

* fix(agents): preserve SQLite transcript parents (clawdbot-85c.5)

* test(agents): prove cursor continuity through Gateway (clawdbot-85c.7)
2026-07-20 15:41:31 -07:00
Josh LehmanandGitHub f0b18c1d74 fix(session): clear orphaned recovery fences (#111869) 2026-07-20 09:32:37 -07:00
Josh LehmanandGitHub 453444636c feat: bound transcript reads across replacements (#110374) 2026-07-18 11:41:39 -07:00
Josh LehmanandGitHub 867a2296eb fix(sessions): fsync archives through writable handles (#110191)
Fixes #110152.
2026-07-17 15:16:50 -07:00
Josh LehmanandGitHub 48863e1b83 fix: prevent doctor hangs on large Memory Core migrations (#109355)
* fix(memory): avoid quadratic FTS migration scans (#108442)

* test(memory): narrow SQLite query-plan detail type
2026-07-17 12:40:00 -07:00
Josh LehmanandGitHub c69486deae fix(slack): isolate queued reply drafts (#107820) 2026-07-14 18:39:20 -07:00
0a8e3604ba refactor: flip sessions and transcripts to sqlite storage (#98236)
* refactor(sessions): migrate runtime storage to sqlite

* test(sessions): fix sqlite CI regressions

* test(sessions): align remaining sqlite fixtures

* fix(codex): require sqlite trajectory recorder

* test(sessions): align orphan recovery sqlite fixture

* test(sessions): align sqlite rebase fixtures

* fix(sessions): finish current-main integration of the sqlite flip

Resolve the whole-store SDK removal across its owner boundary: drop the
loadSessionStore re-export and the registry whole-store wrappers, wire
hasTrackedActiveSessionRun into gateway chat, complete the
preserveLockedHarnessIds cleanup contract, flip the codex thread-history
import to storePath targets, and port remaining main-side tests from
file-store helpers to session accessor reads.

* chore: drop committed pebbles log, revert plugin-inspector bump, refresh generated docs

Remove the 1.8k-line .pebbles/events.jsonl work log from the branch, restore
the plugin-inspector advisory lane to main's pinned 0.3.10 so the supply-chain
bump gets its own review, and regenerate docs_map, the plugin SDK API baseline,
and the export-surface ratchet for the merged tree.

* feat(sessions): keep archived transcripts by default with zstd cold storage

Codex-style retention: deleting or resetting a session archives its
transcript as a zstd-compressed JSONL artifact (plain when the runtime
lacks node:zlib zstd) and keeps it until the disk budget evicts oldest
first. resetArchiveRetention now governs both deleted and reset archives
and defaults to keep; maxDiskBytes defaults to 2gb so retention stays
bounded, with archives evicted before live sessions. The cron reaper
follows the same knob instead of deleting archives on its own timer.

* fix(state): converge agent DB migration lineages and bound database growth

Merge coherence: run both structure-gated legacy memory-schema repairs
(flip-lineage drop, main-lineage identity rebuild) before the flip
migration so pre-flip v1/v2 and pre-merge flip v1/v4 databases all
converge, and hoist foreign_keys=OFF outside the schema transaction
where the pragma was silently ignored and the v1 sessions rebuild
cascade-deleted session_entries.

Growth guards: fresh agent DBs enable auto_vacuum=INCREMENTAL, WAL
maintenance releases freed pages in bounded passes (never a blocking
full VACUUM), and doctor reports state/agent DB bloat from freelist
stats.

* fix(codex): resolve the store path for thread-history import via the SDK

The supervision catalog passed the legacy sessionFile locator to the
storePath-targeted transcript mirror; resolve the agent store path with
the session-store SDK helper instead of a runtime-object seam so test
fakes and headless callers need no extra surface. Drop the obsolete
missing-session-id preprocessing case: sessions rows are NOT NULL on
session_id and upsert repairs id-less patches at write time.

* fix(sessions): fail safe on malformed disk-budget config and doctor stat errors

A malformed explicit maxDiskBytes disables the budget instead of
falling back to the destructive 2gb default the user never chose, and
the doctor bloat check skips databases whose paths stat-fail instead of
aborting doctor.

* fix(sessions): complete sqlite conflict translations

* test(sqlite): align hardening checks with maintenance

* test(sessions): inspect compressed transcript archives

* fix(tests): await session seeds and drop unused helpers flagged by CI lint

The five unawaited writeSessionStoreSeed calls raced their SQLite seeds
against the assertions, failing compact shards; the bloat probe drops a
useless initializer and the merged tests drop now-unused helpers.

* test(sessions): type legacy proof events directly

* test(sessions): align hardening contracts

* perf(sessions): read usage transcript sizes from SQL aggregates

Usage/cost scans walked every session and materialized every transcript
event just to re-stringify it for a byte estimate — the #86718 stall
class reborn on the DB. readTranscriptStatsSync sums stored JSON bytes
in SQLite without loading a single row.

* fix(sessions): re-root foreign-root transcript paths onto the current sessions dir

Restored backups, moved OPENCLAW_STATE_DIR, and rehearsal copies carry
absolute sessionFile paths from the old root; the containment fallback
kept those foreign paths, so migration read (and would archive) files in
the original root and reported local copies missing. Re-root the
canonical agents/<id>/sessions suffix onto the current dir when the file
exists there; genuine cross-root layouts still fall through unchanged.

* test(agents): seed harness admission through sqlite

* fix(sqlite): close agent db on pragma setup failure

* fix(doctor): compact and retrofit incremental auto-vacuum after session import

The migration is the sanctioned offline window: post-import compact
reclaims import churn and applies auto_vacuum=INCREMENTAL to databases
created before the fresh-DB pragma existed, so runtime maintenance can
release pages in bounded passes on every install.

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 14:50:37 -07:00
Josh LehmanandGitHub f68af64846 fix(auto-reply): queue unsupported transcript steering (#103916) 2026-07-10 17:34:31 -07:00
Josh LehmanandGitHub 2367511310 docs: refresh contributing maintainer roster (#102998) 2026-07-09 10:02:23 -07:00
Josh LehmanandGitHub a68caa185b refactor(sessions): move parent-session forking behind the accessor boundary (#101699)
* refactor(sessions): move parent-session forking behind the accessor boundary

* fix(sessions): lazy-load fork transcript runtime to keep accessor imports lean

* test(sessions): align parent fork mock shape
2026-07-07 10:47:02 -07:00
Josh LehmanandGitHub 453f5968bb refactor(gateway): route chat transcript injection through the session accessor (#101688)
* refactor(gateway): route chat transcript injection through the session accessor

* fix(gateway): avoid map-spread in source reply mirror rewrite results

* perf(sessions): find injected transcript duplicates with a reverse early-exit scan
2026-07-07 09:10:30 -07:00
Josh LehmanandGitHub 5d9a2b114f feat(context-engine): report compaction successors as typed session targets (#101182) 2026-07-06 22:14:46 -07:00
Josh LehmanandGitHub cb0d8a1294 refactor(sessions): move inbound meta, goals, and delivery reads behind the session accessor (#101180) 2026-07-06 18:07:26 -07:00
Josh LehmanandGitHub 4e2a80cac3 refactor(sessions): route new session store bypasses through the accessor (#101179) 2026-07-06 18:05:18 -07:00
Josh LehmanandGitHub d5e9b4d1a3 fix: preserve preflight overflow token counts into recovery budgeting (#101181)
Budget context engine assembly against the reserve and rendered prompt
pressure, and carry the preflight estimated prompt tokens, prompt budget,
and overflow tokens into the outer overflow recovery loop so compaction
engines compact against the prompt OpenClaw actually rendered instead of
a minimally over-budget guess.
2026-07-06 15:58:11 -07:00
Josh LehmanandGitHub c7295e417d chore(scripts): add debt ratchet to the session-accessor boundary guard (#101178)
* chore(scripts): add debt ratchet baseline to session-accessor boundary gate

* fix(scripts): fail session-accessor debt gate until baseline ratchets down
2026-07-06 13:55:16 -07:00
Josh LehmanandAyaan Zaidi 26a756ee84 fix: preserve plugin login command precedence 2026-07-01 11:16:49 -07:00
Josh LehmanandAyaan Zaidi bde0e4541e refactor: share codex login flow helpers 2026-07-01 11:16:49 -07:00
Josh LehmanandGitHub b5e9179063 docs: deprecate legacy session file helpers (#97494)
* docs: deprecate legacy session file helpers

* docs: update sdk deprecation budgets
2026-06-28 07:33:34 -07:00
Josh LehmanandGitHub 2c714ac2e0 fix(whatsapp): route group activation through session accessor (#96530) 2026-06-24 13:46:26 -07:00
Josh Lehman 0cdb050bac test: import model-run prune helper 2026-06-24 13:42:39 -07:00
Josh Lehman fab0048d7b fix: preserve plugin maintenance config compatibility 2026-06-24 13:42:39 -07:00
Josh Lehman 4a7659920c chore: drop unrelated formatting churn 2026-06-24 13:42:39 -07:00
Josh Lehman 070996e5c3 fix: keep model-run pruning internal 2026-06-24 13:42:39 -07:00
Josh LehmanandGitHub d716900929 refactor: route voice call agent runs through session target (#96539) 2026-06-24 12:48:39 -07:00
Josh LehmanandGitHub 7e2b2d2987 refactor: migrate bundled session metadata reads (#96527) 2026-06-24 12:19:53 -07:00
Josh LehmanandGitHub b6bc3ed0db fix: Codex turns stop showing typing during tool work (#95844)
* fix: bridge harness execution phases to typing

* docs: clarify typing indicator activity triggers
2026-06-24 11:50:09 -07:00
Josh LehmanandGitHub 4c841ac575 refactor: remove Telegram session deps adapter (#96524)
* refactor: remove telegram session deps adapter

* test: update telegram session ratchet expectation
2026-06-24 11:37:19 -07:00
Josh LehmanandGitHub da50a450d2 fix(memory-core): route dreaming corpus through session corpus metadata (#96517) 2026-06-24 11:29:26 -07:00
Josh LehmanandGitHub 4d4769c0d6 refactor(path3): narrow bundled session runtime barrels (#96507) 2026-06-24 10:33:40 -07:00
Josh LehmanandGitHub b58e6e0734 refactor: route session status through session accessors (#96460) 2026-06-24 07:44:19 -07:00
Josh LehmanandGitHub acc2a0ee72 refactor: route boot session mapping through accessor (#96225) 2026-06-24 06:54:19 -07:00
Josh LehmanandGitHub c588606a9b refactor: route checkpoint mutations through accessor (#96222) 2026-06-24 06:15:09 -07:00
Josh LehmanandGitHub 96cee6cb64 refactor: route live model reads through session accessor (#96206) 2026-06-23 16:52:22 -07:00
Josh LehmanandGitHub 5839ef519a refactor: migrate command session persistence to accessor (#96204)
* refactor: migrate command session writes to accessor

* refactor: narrow command session persistence params
2026-06-23 16:52:11 -07:00
Josh LehmanandGitHub ae433525f0 refactor(gateway): add alias mutation accessor (#96213)
* refactor: add gateway alias mutation accessor

* test: align gateway session entry mocks
2026-06-23 16:51:36 -07:00
Josh LehmanandGitHub 95e37f8e95 refactor: guard reply session initialization (#96218)
* refactor: guard reply session initialization

* refactor: tighten reply session initialization boundary

* test: satisfy reply session accessor lint
2026-06-23 16:51:06 -07:00
Josh LehmanandGitHub 6f2869c296 refactor: migrate agent session accessors (#96182)
* refactor: migrate agent session accessor writes

* refactor: move subagent orphan lookup to reconciliation

* test: align session accessor mocks
2026-06-23 16:31:43 -07:00
Josh LehmanandGitHub 9512294e8f fix: bridge ACP metadata to session accessors (#96195)
* fix: bridge ACP metadata to session accessors

* fix: simplify ACP accessor key ownership

* fix: bind ACP metadata after session canonicalization
2026-06-23 16:14:53 -07:00
Josh LehmanandGitHub 8a7b3c755a fix(memory-core): migrate dreaming cleanup lifecycle (#96193)
* fix(memory-core): migrate dreaming cleanup lifecycle

* fix(sessions): resolve lifecycle session files explicitly

* fix(ci): refresh dreaming lifecycle proof ratchets
2026-06-23 16:08:44 -07:00
Josh LehmanandGitHub f8ed4de460 refactor: add abort target session accessor (#96201)
* refactor: add abort target session accessor

* refactor: centralize command abort session lookup

* fix: keep abort runtime path best effort

* fix: preserve abort target identity on persistence failure

* fix: remember abort target when persistence is skipped

* fix: abort runtime before metadata persistence

* fix: preserve abort target fallback typing

* fix: avoid stale abort memory fallback

* fix: keep abort accessor ratchet narrow

* fix: type abort persistence test mock

* fix: align abort accessor ratchet test
2026-06-23 16:06:04 -07:00
Josh LehmanandGitHub b08d901dd2 fix: route gateway history through session accessor target (#96179) 2026-06-23 14:42:43 -07:00
Josh LehmanandGitHub a8f387ba19 refactor: route plugin host hook state through accessor (#96191)
* refactor: route plugin host hook state through accessor

* refactor: hide session accessor store internals
2026-06-23 14:38:40 -07:00
Josh LehmanandGitHub 132d70bfb3 refactor: migrate bundled transcript target lookups (#89911) 2026-06-23 14:32:21 -07:00
Josh LehmanandGitHub c24d266b2d refactor: use accessor-backed transcript corpus for memory (#96162)
* refactor: ratchet memory transcript corpus access

* test: use narrow runtime config snapshot import

* test: update plugin sdk surface budgets

* refactor: split memory transcript corpus module
2026-06-23 12:37:44 -07:00
Josh LehmanandGitHub 0dfa22c6e0 refactor: add embedded run session target seam (#90439) 2026-06-23 10:08:29 -07:00
Josh LehmanandGitHub 258b83c438 refactor: migrate plugin transcript mirrors (#89518) 2026-06-23 09:32:45 -07:00
Josh LehmanandGitHub 475252453b refactor: add transcript update identity contract (#89912) 2026-06-23 05:52:08 -07:00
Josh LehmanandGitHub d3781cc4b8 refactor: add memory and QMD session identity mapping (#95087) 2026-06-22 06:28:54 -07:00
Josh LehmanandGitHub 7a0d36f3d0 refactor: add SDK transcript identity target API (#95030) 2026-06-20 14:01:07 -07:00
Josh LehmanandGitHub d216f7c876 refactor: use canonical transcript reader identity (#89581)
* refactor: use canonical transcript reader identity

* refactor: keep transcript reader dependency storage-neutral
2026-06-19 10:40:18 -07:00
Josh LehmanandGitHub 8662b9de54 refactor: route sdk session compatibility through accessor (#89904) 2026-06-18 21:00:05 -07:00
Josh LehmanandGitHub f1cab04966 refactor: route SDK session compatibility through seam (#89203) 2026-06-18 20:52:46 -07:00
Josh LehmanandGitHub 49e6f5a524 refactor(auto-reply): add lifecycle storage seams (#93685)
* refactor(auto-reply): add lifecycle storage seams

* fix(auto-reply): remove unused transcript replay shim
2026-06-18 16:40:27 -07:00
Josh LehmanandGitHub 7845182410 clawdbot-d02.1.9.1.39: add task session registry maintenance seam (#93734) 2026-06-18 14:36:10 -07:00
Josh LehmanandGitHub b637414871 fix: add plugin host session cleanup seam (#93733)
* fix: add plugin host session cleanup seam (clawdbot-d02.1.9.1.38)

* test: update session accessor writer ratchet
2026-06-18 13:29:39 -07:00
Josh LehmanandGitHub 9eb6e6d326 refactor(clawdbot-d02.1.9.1.37): add session maintenance seam (#93737) 2026-06-18 11:12:49 -07:00
Josh LehmanandVincent Koc 28fb5b019a fix(memory): migrate source primary key shape 2026-06-19 01:20:06 +08:00
Josh LehmanandVincent Koc 9cfd1cd287 fix(memory): key index sources by path and source 2026-06-19 01:20:06 +08:00
Josh LehmanandVincent Koc 21163a704b fix(memory): make file index publication atomic 2026-06-19 01:20:06 +08:00
Josh LehmanandGitHub fd8e3bf652 refactor: add restart recovery lifecycle seam (#93735) 2026-06-18 06:57:24 -07:00
Josh LehmanandGitHub 79c7468075 fix: route deleted-agent purge through lifecycle seam (clawdbot-d02.1.9.1.34) (#93713) 2026-06-17 17:11:16 -07:00
Josh LehmanandGitHub 968190e5a7 clawdbot-d02.1.9.1.33: add session cleanup lifecycle seam (#93704) 2026-06-17 16:08:20 -07:00
Josh LehmanandGitHub e442b575b9 refactor: add compact trim lifecycle seam (#93695)
* clawdbot-d02.1.9.1.32: add compact trim lifecycle seam

* fix: repair session compact type narrowing
2026-06-17 14:08:33 -07:00
Josh LehmanandGitHub c41bc58cf6 refactor: add session reset delete lifecycle seam (#93659)
* refactor: add session reset delete lifecycle seam

* refactor: expose session lifecycle seam through accessor
2026-06-17 10:43:47 -07:00
Josh LehmanandGitHub 5556f19b8c fix(codex): keep message registered for internal turns (#93813)
* fix(codex): keep message in registered schema

* fix(codex): keep forced message schema direct

* test(codex): align disabled message fingerprint proof

* fix(codex): apply registered message policy to allowlists
2026-06-17 09:09:51 -07:00
Josh LehmanandGitHub c85bd45284 clawdbot-d02.1.9.1.16: add session patch projection seam (#93739) 2026-06-17 08:02:45 -07:00
Josh LehmanandGitHub cf64a9c517 clawdbot-d02.1.9.1.31: add sessions.create lifecycle seam (#93691) 2026-06-16 19:01:14 -07:00
Josh LehmanandGitHub 00a75db428 refactor: route transcript writers through session seam (#89123)
* clawdbot-d08: route transcript writers through accessor seam

* fix: refresh transcript writer seam proofs

* refactor: add transcript turn writer operation

* fix: preserve transcript writer store targeting

* fix: preserve transcript append lock ordering

* refactor: guard transcript turn session rebound

* clawdbot-d02.1.9.1.35: route transcript rewrites through runtime scope

* fix: preserve transcript event append return type

* fix: publish transcript turn owned entries
2026-06-16 13:59:48 -07:00
Josh LehmanandGitHub 127e174c9e refactor: route auto-reply sessions through session seam (#89124)
* clawdbot-6f0: route agent runtime session writes through seam

* clawdbot-6f0: route command entry persistence through seam

* test: ratchet auto-reply session accessor writes

* refactor: scope embedded attempt quota reads

* test: ratchet session store save writer
2026-06-15 15:50:38 -07:00
Josh LehmanandGitHub efa9a6110b refactor: add transcript runtime identity contract (#89201) 2026-06-15 13:04:03 -07:00
Josh LehmanandGitHub 8ded756284 refactor: add transcript reader seam (#89121)
Merged via squash.

Prepared head SHA: 7ea7ea47ef
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-06-15 09:41:50 -07:00
Josh LehmanandGitHub 10a4c7c10b feat(status): surface plugin health (#91952)
Merged via squash.

Prepared head SHA: 2cd914cec1
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-06-15 09:36:13 -07:00
Josh LehmanandGitHub f1b8827d20 refactor: route bundled plugin session callers through seam (#89129)
Merged via squash.

Prepared head SHA: 7975bc06ac
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-06-14 12:26:53 -07:00
Josh LehmanandGitHub e1744184b8 refactor: route command session reads through seam (#89122)
Merged via squash.

Prepared head SHA: 73218cc7cd
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-06-14 09:01:17 -07:00
Josh LehmanandGitHub ef47dd610c refactor: add session accessor seam with gateway consumer (#90463)
Merged via squash.

Prepared head SHA: 58aa59eaf8
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-06-14 06:18:47 -07:00
Josh LehmanandGitHub bbfe8ccaf6 fix: refresh prompt fence after compaction writes
Fix embedded attempts falsely reporting session takeover after OpenClaw-owned auto-compaction writes a compaction entry while the prompt fence is released.

The compaction append path now publishes an owned session-file fence only when the guarded SessionManager append produced the expected compaction entry. External or interleaved session-file edits remain takeover errors.

Closes #90729
2026-06-05 17:05:35 -07:00
ab0a633ab9 fix: tolerate missing streamed response content type
Fixes the OpenAI-compatible stream transport regression where a valid ChatGPT Codex HTTP 200 stream could arrive without a `content-type` header and be rejected before the OpenAI SDK consumed it.

Prepared head SHA: 0d7f8abb17

Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
2026-06-04 12:17:22 -07:00
Josh LehmanandGitHub 208fec6ddc docs: clarify legacy openai-codex auth (#90028) 2026-06-03 16:18:51 -07:00
Josh LehmanandGitHub 9119492f15 fix: preserve plugin LLM command auth (#85936)
Merged via squash.

Prepared head SHA: e61c724708
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-05-26 22:41:52 -04:00
62b51a6295 fix(telegram): serialize topic dispatch replies (#85709)
* fix(telegram): serialize topic dispatch replies (clawdbot-b19)

* fix(telegram): normalize dispatch topic context

* fix(telegram): satisfy dispatch race CI checks

* fix(telegram): normalize raw code language tags

* refactor(reply): centralize turn admission

* fix(telegram): persist recovered topic routes

* fix(reply): preserve queue policy admission

* fix(reply): retain active abort owner

* fix(reply): split active abort ownership

* fix(reply): defer busy followup drains

* fix(reply): wire hook abort ownership

* fix(reply): preserve deferred queue summaries

* fix(reply): type queued summary retry

* fix(reply): abort embedded and core runs

* test(reply): keep final abort operation active

* test(reply): stabilize abort normalization test

* fix(reply): keep non-visible admission skips silent

* test(reply): avoid dispatch shard mock bleed

* fix(reply): merge deferred queue summaries

* fix(reply): abort active-lane resolver runs

* fix(reply): compose borrowed lane abort signals

* fix(reply): keep interrupt turns caller-owned

* fix(telegram): keep recovered topic history scoped

* fix(reply): retry deferred summary queues

* fix(reply): document deferred summary restore

* fix(telegram): rebuild recovered topic prompt body

* fix(reply): run admitted session ids

* fix(telegram): recover topic chat actions

* fix(reply): honor pre-dispatch aborts for handled replies

* fix(reply): guard local handled final aborts

* fix(reply): refresh admitted session files

* fix(telegram): trust final current-message marker

* fix(telegram): migrate recovered room history

* fix(telegram): scope recovered topics to current chat

* fix(reply): wait for visible reply lane ownership

* fix(telegram): pass recovered topic body to agent

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-24 11:49:48 +01:00
Josh LehmanandGitHub c52daa4cdf fix(codex): stabilize heartbeat dynamic tool schema (#84681) 2026-05-22 18:45:10 -04:00
Josh LehmanandGitHub cff5244a5b feat: add context-engine host capability requirements (#84994)
* feat(context-engine): add host capability requirements

* fix(context-engine): advertise pi host capabilities

* fix: repair incompatible context engine slots
2026-05-22 10:28:08 -04:00
85a3d5312f fix: bypass npm freshness for managed installs (#83761)
* fix: bypass npm freshness for managed installs

* test: tolerate npm config json differences

* test: align npm freshness bypass expectation

* fix: resolve npm config path expansions

* test: tolerate npm zero config encoding

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-19 00:31:02 +02:00
Josh Lehman 639107b7db fix: repair codex context-engine test typing 2026-05-15 21:14:54 -07:00
Josh LehmanandGitHub 80ca48418a feat(codex): bind context-engine projections to codex threads (#82351)
* feat(codex): bind context-engine projections to codex threads

* fix: harden Codex context-engine projection

* fix: remove unused Codex projection helper

* fix(codex): adopt compacted context-engine transcripts
2026-05-15 20:59:38 -07:00
Josh LehmanandGitHub 4004c9342d fix: use Codex context windows for OpenAI runtime (#81906)
* fix: use Codex context windows for OpenAI runtime

* test: satisfy status model fixture types

* fix: note Codex context window budget fix
2026-05-14 15:38:50 -07:00
Josh LehmanandGitHub 9cfb4c747a docs: restore 2026.5.12 changelog section (#81943) 2026-05-14 15:36:04 -07:00
Josh LehmanandGitHub 3f80f889fa fix: align Codex cron bootstrap context (#81822)
* fix: align Codex cron bootstrap context

* fix: address Codex cron review comments

* fix: suppress Codex project docs for lightweight context

* fix: note Codex cron lightweight context
2026-05-14 15:10:42 -07:00
Josh LehmanandPeter Steinberger f64feab47a fix: prevent codex app-server surrogate stalls 2026-05-14 19:59:23 +01:00
1ee0d51e92 fix(codex): preserve MCP servers in app-server harness (#81551)
* Plumb bundle MCP config into Codex app server

* fix: align codex mcp thread config with pi

* fix: rotate codex mcp threads when disabled

* fix: scope codex bundle mcp to bundled servers

* fix(codex): resend user MCP config on resume

---------

Co-authored-by: Josh Lehman <phaedrus@Mac.hsd1.ca.comcast.net>
2026-05-13 21:05:20 -07:00
Josh LehmanandGitHub aac216d699 fix: route plugin LLM completions through Codex runtime (#81511)
* fix: route plugin LLM completions through Codex runtime

* fix: preserve OpenRouter completion model ids

* fix: allow registry config compat guards
2026-05-13 21:02:28 -07:00
Josh LehmanandGitHub 6395117142 fix: restore Codex cron automation compatibility (#81510)
* fix: restore Codex cron automation compatibility

* fix: document Codex cron automation restore
2026-05-13 15:34:31 -07:00
b55d9fa466 fix(codex): rotate incompatible context-engine threads (#81223)
* fix(codex): rotate incompatible context-engine threads

* fix(codex): tighten context-engine sidecar policy

* fix: type context-engine binding policy config

---------

Co-authored-by: Josh Lehman <phaedrus@Mac.hsd1.ca.comcast.net>
2026-05-13 11:50:03 -07:00
4bfd7416f0 fix: stabilize code-mode follow-up tool display and replay (#80663)
* fix: project tool-search bridge event display

* fix: keep codex tool progress out of final replies

* fix: preserve tool result pairs on cleanup

* fix: restore tool search display target helper

* fix: keep tool search controls independent

* fix: render bridged tool calls like native tools

* fix: abort timed out tool search bridge calls

* fix: preserve code-mode tool results across display turns

* fix: repair missing code-mode tool results on disk

* fix: expose tool search controls in embedded runs

* docs: add code-mode followups changelog

* fix: update session repair agent-core import

* fix: harden code-mode follow-up repair

* fix: use stable session repair ids

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-11 15:31:35 -07:00
Josh LehmanandGitHub 24ffd4d2f8 Telegram: keep verbose tool results separate from final answers (#80294)
* Telegram: keep tool progress separate from final answers

* Telegram: separate verbose tool results from final answers

* fix: separate Telegram verbose tool drafts
2026-05-11 15:21:19 -07:00
Josh LehmanandGitHub b22c8998ca fix(doctor): discover load-path plugin contracts (#77477)
Merged via squash.

Prepared head SHA: d428fd47f5
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-05-06 11:50:47 -07:00
Josh LehmanandGitHub 6dae3c273d fix: keep runtime prompt context out of system prompt (#77521) 2026-05-05 00:54:16 +01:00
0fc8afeac9 test(package): cover stale source plugin shadows
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-05-04 21:55:08 +01:00
Josh Lehman 0b3a86cab0 docs(changelog): restore 2026.5.3 release notes 2026-05-04 06:49:27 -07:00