* fix(context): suppress native Codex transcript AGENTS writes (closes#2837)
* fix(sqlite): preserve legacy NULL observation hashes during migration 29 (closes#2812)
* Keep Codex hook output within the supported schema (closes#2844)
* Honor persisted worker request timeouts in MCP calls (closes#2822)
* Limit Codex AGENTS suppression to native transcript watches
* Preserve migrated hashes through legacy FK rebuilds
* Keep settings-file defaults from inheriting stale env state
* Keep welcome-hint settings overrides request-local
* Keep Bun test state from masking settings fallbacks
* Keep sticky test mocks from bleeding into later routes
* Keep generated worker bundle aligned after baseline carry-over
* Keep settings-file defaults from inheriting stale env state
* Keep welcome-hint settings overrides request-local
* Keep Bun test state from masking settings fallbacks
* Keep sticky test mocks from bleeding into later routes
* Keep generated hooks aligned after baseline carry-over
* Keep settings-file defaults from inheriting stale env state
* Keep welcome-hint settings overrides request-local
* Keep Bun test state from masking settings fallbacks
* Keep sticky test mocks from bleeding into later routes
* Keep generated bundles aligned after baseline carry-over
* Keep settings-file defaults from inheriting stale env state
* Keep welcome-hint settings overrides request-local
* Keep Bun test state from masking settings fallbacks
* Keep sticky test mocks from bleeding into later routes
* Keep generated scripts aligned after baseline carry-over
* Keep worker recycle tests isolated from module cache
* Preserve native Codex watch filtering while narrowing AGENTS suppression
* Keep migration backfills out of user hash namespaces
* fix(sqlite): bound stored prompt payloads to stop prompt-table bloat (closes#2793)
* fix(sqlite): normalize prompt dedupe against the stored payload
* Keep settings-file defaults from inheriting stale env state
* Keep welcome-hint settings overrides request-local
* Keep Bun test state from masking settings fallbacks
* Keep sticky test mocks from bleeding into later routes
* Keep worker recycle tests isolated from module cache
* Keep baseline fallback fixes consistent with regenerated assets
* Keep parser mode tests isolated and prompt storage observable
* Keep parser mode tests isolated and prompt storage observable
* Keep parser mode tests isolated and prompt storage observable
* build: regenerate plugin bundles for combined batch
* test: restore module mocks after codex-context processor tests
The module-level mock of utils/project-name leaked into
tests/utils/project-name.test.ts when the full suite ran in one
process.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Rod Boev <rod.boev@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
* Keep settings-file defaults from inheriting stale env state
* Keep welcome-hint settings overrides request-local
* Keep Bun test state from masking settings fallbacks
* Keep sticky test mocks from bleeding into later routes
* Keep worker recycle tests isolated from module cache
* fix(build): add transcript-watcher.cjs build target (closes#2450)
src/npx-cli/commands/runtime.ts:230 hard-codes a reference to
plugin/scripts/transcript-watcher.cjs, but scripts/build-hooks.js
never compiled this entry. The fallback `spawnBunWorkerCommand`
path silently no-ops on systems where bun isn't reachable, so
`claude-mem transcript watch` is effectively dead in the published
npm bundle.
This adds:
- A thin entry (src/services/transcripts/transcript-watcher-entry.ts)
that dispatches process.argv to the existing runTranscriptCommand
function in cli.ts (which until now had no caller in the build).
- A new esbuild target in build-hooks.js modeled on context-generator
(Node 18 CJS, minified, bun:sqlite external) plus the standard
stripHardcodedDirname pass and chmod 0755.
- Updated build summary so the new artifact shows up in the
"compiled successfully" footer.
The compiled bundle is 137 KB. `node plugin/scripts/transcript-watcher.cjs`
prints the usage line and exits 1 as expected; `... validate`,
`... init`, and `... watch` all route correctly.
No behavior change on platforms that previously had a working bun
fallback - the explicit path now just wins the existsSync check.
* fix(build): externalize zod + add bundle-size guard for transcript-watcher
Addresses Greptile review on #2592:
1. Add `zod` to the external list. worker-service and
server-beta-service both externalize zod and rely on
plugin/package.json to provide it at runtime; the watcher
build was inconsistent. The current processor.ts chain
does not actually pull in zod (bundle size unchanged
at 137.64 KB), but the external entry is defensive —
any future import in src/services/transcripts/ that
touches zod will now resolve against the plugin's
declared dependency rather than getting silently
inlined (and potentially creating a duplicate-instance
hazard).
2. Add a 200 KB size guard mirroring the 600 KB ceiling
on mcp-server.cjs. The watcher is meant to be a thin
file-tail loop; if a transitive import ever drags a
heavy module (worker-service, an SDK runtime) into
the chain, this catches it at build time with an
informative error pointing at processor.ts / watcher.ts.
No functional change to the runtime artifact (size
identical, behavior identical). Both follow-ups recommended
by Greptile.