Peter Steinberger
e71fc9420c
fix(memory): reject overdue embedding results ( #126667 )
2026-08-20 06:34:11 -07:00
Peter Steinberger
75fcb1fbb9
fix(memory): reject unknown --agent ids and keep the hint runnable ( #126570 )
...
The memory CLI resolved --agent by returning the caller's string verbatim,
so an id that is not configured produced a confident empty result:
`memory status` rendered a panel for it, `memory index` fabricated a
workspace-<id> path, and `memory search` reported No matches. A typo read
as an empty memory rather than a nonexistent agent, while hooks, status
--usage, capability, migrate, and session targets already rejected unknown
ids.
Consolidate that duplicated check into resolveConfiguredAgentId beside the
agent roster owner, reuse it at the matching core sites, and route memory
to it through the existing memory-core host-runtime facade so no new
plugin SDK surface is added.
The canonical hint uses formatCliCommand rather than a literal: under a
profile or container the bare command is wrong, so consolidating on a
literal would have regressed the hooks and migrate hints and left the
status, capability, and session-target hints unrunnable.
2026-08-20 00:32:59 -07:00
Peter Steinberger
16bec3c727
fix(memory): keep tool guidance aligned with sources ( #126552 )
...
* fix(memory): keep tool guidance aligned with sources
* refactor(memory): keep source contract internal
2026-08-20 00:30:52 -07:00
Peter Steinberger
6a637469a0
fix(memory): detect offline source drift in status ( #126535 )
...
* fix(memory): detect offline source drift in status
* fix(status): preserve memory source inspection
* test(status): cover memory source inspection
2026-08-19 22:14:38 -07:00
Peter Steinberger
3fe833dfa4
fix(memory): preserve requested corpus outcomes ( #126530 )
2026-08-19 20:57:32 -07:00
Peter Steinberger
35e0bc22ea
fix(memory): distinguish missing file reads ( #125979 )
...
* fix(memory): distinguish missing file reads
* test(memory): keep adapter identity assertion bound
* fix(memory): preserve statusless manager reads
2026-08-19 20:08:50 -07:00
Peter Steinberger
3378e07d50
refactor(plugin-sdk): promote shared runtime primitives ( #126193 )
...
* refactor(plugin-sdk): promote shared runtime primitives
* test(codex): keep one attempt tools owner
2026-08-19 01:10:18 -07:00
Peter Steinberger
20b46bbb3b
perf(memory): avoid duplicate embeddings during filtered recall ( #125735 )
...
* perf(memory): search filtered sessions in one pass
* refactor(memory): model transcript capture outcome
2026-08-18 02:00:38 -07:00
Peter Steinberger
da4ad4110b
fix(process): treat zombie lock owners as dead ( #125658 )
...
Linux signal-zero probes succeed for zombie processes. Reclaim memory promotion and session usage locks only when their exact zombie owner is still current, and route shared test waits through the canonical zombie-aware PID helper.
2026-08-17 23:55:08 -07:00
Peter Steinberger
7242074ecc
fix(memory): prevent silent context loss in resets and search ( #125534 )
...
* fix(memory): record transcript capture failures
* fix(memory): backfill filtered search results
2026-08-17 20:46:52 -07:00
Peter Steinberger
26353983f3
fix(memory): record the omitted memory corpus in corpus=all searches ( #125500 )
...
memory_search corpus=all silently swallowed a returned memory-manager
error (missing sqlite, embedding misconfiguration, corrupted index):
the error branch was gated on !shouldQuerySupplements, so the tool
served wiki-only results in a payload with no error/warning field and
recorded no cooldown — a degraded search read as complete, contradicting
the tool description's own disabled-flag contract. The thrown-error path
already surfaced this; only the returned-error path was silent.
Record the cooldown in both cases and, when supplements still serve,
carry a warning naming the unavailable memory corpus in the payload.
2026-08-17 18:50:49 -07:00
Peter Steinberger
e169520fef
fix: surface swallowed failures on action paths ( #125319 )
...
* fix: surface swallowed failures on action paths
* fix(memory): propagate directory traversal failures
2026-08-17 17:14:05 -07:00
Josh Avant
9e7da04686
fix(memory): enforce live revocation ( #125393 )
2026-08-17 14:25:07 -07:00
Peter Steinberger
7349177ce3
feat: main-session agent-wide visibility + session.groupScope routing ( #124965 )
...
* feat: add main session group routing
* docs: explain main session routing scopes
* fix: align memory session visibility
* test(qa): cover main-scoped group bindings
* fix(sessions): preserve binding-scoped outbound routes
* fix(routing): preserve explicit outbound owners
* fix(sessions): recognize global main visibility
* chore(ci): prune assertion safety baseline
2026-08-16 19:57:18 -07:00
Peter Steinberger
13872f4338
fix: plugin tools disappear from Codex and restricted profiles ( #124947 )
...
* fix(memory): make standing intents reachable
* fix(agents): dedupe macOS read path variants
* docs(plugins): document profile tool metadata
* test(codex): complete prepared runtime fixtures
* fix(agents): preserve prepared tool boundaries
2026-08-16 19:38:07 -07:00
Peter Steinberger
d23246770a
fix(memory): report indexed SQLite sessions ( #124834 )
...
* fix(memory): report indexed SQLite sessions
* refactor(memory): remove unused state path export
2026-08-16 14:38:15 -07:00
Peter Steinberger
541f373bc0
refactor(validation): type producers and drop internal re-validation — pilot lane C ( #124808 )
2026-08-16 13:38:17 -07:00
Peter Steinberger
8b9650d42a
fix(memory): fail corrupted index commands ( #124770 )
...
* fix(memory): fail corrupted index commands
* fix(memory): preserve promotion output limit
* fix(memory): keep ranked promotion output
2026-08-16 13:28:31 -07:00
Peter Steinberger
568b920b21
feat(lint): enforce import ordering and deduplication ( #124730 )
...
* refactor(imports): dedupe and hoist imports
* feat(lint): enforce import/no-duplicates and import/first
2026-08-16 11:44:52 -07:00
Peter Steinberger
6aa27d6ecd
refactor: retire August compat windows (embedding API, pi aliases, target parser, spawning hook, setup exports, WhatsApp inbound aliases) ( #124416 )
...
* refactor(plugin-sdk): retire embedded Pi aliases
* refactor(channels): retire explicit target compatibility
* refactor(plugins): retire subagent spawning hook
* refactor(plugin-sdk): retire shipped channel setup exports
* refactor(whatsapp): retire inbound callback aliases
Proof: focused build and WhatsApp E2E green; broad WhatsApp suite 188/189 files green. extensions/whatsapp/src/monitor-inbox.policy.test.ts flakes only in the parallel batch and passes isolated (10/10).
* refactor(plugin-sdk): retire memory embedding registrar
Migrate every bundled provider and manifest to registerEmbeddingProvider and contracts.embeddingProviders. Preserve memory-specific batching, local-service acquisition, index identity, and auto-selection through the canonical generic registry adapter, then remove the parallel registrar, registry, diagnostics, contracts, tests, and docs.
* chore(plugin-sdk): tighten retired surface budgets
Pin the post-retirement public SDK surface to 144 entrypoints, 4,312 exports, 2,564 callable exports, and 1,133 deprecated exports; agent-harness-runtime now permits exactly nine deprecated exports.
2026-08-15 22:43:47 -07:00
Jason (Json)
5f1bbed42d
fix(doctor): report missing managed local embedding setup ( #123575 )
...
* fix(gateway): expose startup blockers before cutover
* fix(gateway): include session blockers in preflight
* fix(gateway): keep preflight finding type private
* fix(gateway): preflight startup auth blockers
* fix(gateway): complete startup preflight readiness
* fix(llama-cpp): keep preflight remediation private
* fix(gateway): keep preflight passive and activation-aware
* fix(gateway): apply startup guard in preflight
* fix(gateway): align auth mode preflight
* fix(gateway): keep preflight state reads isolated
Share the read-only inspection snapshot scope across duplicated runtime chunks so blocked gateway preflight remains non-mutating when bundled provider artifacts read canonical state.
* fix(gateway): keep startup preflight passive
* fix(gateway): ignore inactive embedding owner shadows
* fix(gateway): preserve startup preflight parity
* fix(llama-cpp): keep cache inspection types private
* fix(gateway): close startup preflight parity gaps
* fix(gateway): handle uninitialized memory databases
* test(gateway): observe shell fallback portably
* fix(llama-cpp): normalize embedding model paths
* refactor(gateway): drop broad startup preflight surface
* fix(doctor): report missing managed local embedding setup
* style(memory): simplify setup enablement check
* fix(memory): keep diagnostic result type private
* fix(memory): inspect local setup with remote secret refs
* fix(memory): keep doctor index inspection immutable
* fix(memory): make readiness inspection owner-aware
* fix(doctor): mirror memory slot allowlist policy
* test(doctor): use canonical memory slot id
* fix(doctor): normalize memory provider ids
* fix(doctor): resolve external embedding readiness owner
* fix(plugins): keep embedding inspection result internal
* fix(doctor): isolate plugin state during lint
* fix(doctor): route lint metadata through snapshot
* fix(cli): keep doctor lint startup source-only
* fix(cli): keep doctor lint compile-cache free
* fix(doctor): keep local embedding readiness opt-in
* test(doctor): preserve plugin artifact roots during lint
* fix(doctor): refresh memory readiness registration
* test(doctor): type nullable provider policy mock
* fix(doctor): scope lint state snapshot to provider check
* fix(doctor): isolate selected plugin state checks
* test(doctor): restore only scoped environment
* fix(doctor): defer readiness state inspection
* fix(doctor): keep deferred config reads isolated
* fix(doctor): keep plugin state mode internal
* fix(config): preserve default plugin validation
2026-08-15 20:15:06 -06:00
Peter Steinberger
11bcc0eb49
fix(memory): stop cancelled searches before returning results ( #124118 )
...
* fix(memory): stop vector scan after search cancellation
* fix(memory): preserve cancellation through hybrid search
2026-08-15 02:00:33 -07:00
Peter Steinberger
3f6bf166b6
fix(memory): preserve provider on cancelled search ( #124051 )
2026-08-14 23:28:16 -07:00
Peter Steinberger
2ee5c2f6ca
fix(memory): queue transcript updates during active sync ( #124024 )
2026-08-14 22:20:53 -07:00
Peter Steinberger
156af00a78
fix(memory): report truthful index outcomes ( #123863 )
2026-08-14 17:17:16 -07:00
Peter Steinberger
1c2984b84c
refactor(test): remove residual test seams ( #123555 )
...
* refactor(test): remove residual test seams
* fix(test): avoid Memory doctor provider bootstrap
* fix(test): bind Memory doctor inspector per instance
* refactor(memory): split vector doctor orchestration
2026-08-14 03:03:15 -07:00
Peter Steinberger
73e2489a5e
test: delete final plugin and UI duplicates ( #123214 )
...
* test: delete final plugin and UI duplicates
* test(ios): remove duplicate watch reply case
* test(nostr): isolate ambient private key
Co-authored-by: Josh Avant <830519+joshavant@users.noreply.github.com >
---------
Co-authored-by: Josh Avant <830519+joshavant@users.noreply.github.com >
2026-08-14 00:20:09 -07:00
Peter Steinberger
1348387076
refactor(plugins): replace node-llama-cpp with managed llama-server ( #123105 )
...
Move llama.cpp chat and local embeddings onto a verified externally managed llama-server runtime. Remove the in-process native runtime, forked embedding workers, and node-llama-cpp dependency while preserving guided setup, local GGUF models, tool-capable agent runs, diagnostics, and operator docs.
2026-08-13 16:58:20 -07:00
Peter Steinberger
bc8e51ce37
refactor(memory-core): strengthen dreaming boundaries ( #123138 )
...
Replace assertion-driven cleanup with real runtime narrowing and typed owner contracts across memory-core dreaming.
Reject the unsound one-file lint ratchet and document repository-wide rules against checker-gaming and baseline-driven enforcement.
Co-authored-by: Amp <amp@ampcode.com >
2026-08-13 11:32:25 -07:00
sunlit-deng
b05d2308e7
fix(memory): keep session reconciliation off search path ( #120837 )
...
* fix(memory): keep session reconciliation off search path
* test(memory): decouple reconciliation test from provider fixture
---------
Co-authored-by: Jason (Json) <263060202+fuller-stack-dev@users.noreply.github.com >
2026-08-12 21:42:01 -07:00
Vitor Cepeda Lopes
a9ee6618fe
fix(memory): recall prior conversation after session reset ( #122051 )
...
* fix(memory): recall archived session generations after reset
* test(memory): prove private recall across reset
* fix(memory): keep deleted transcripts outside reset recall
* fix(memory): reject deleted archives from reset recall
* fix(memory): isolate recall across sqlite resets
* test(memory): split reset recall coverage
* fix(memory): keep reset recall metadata private
* fix(memory): keep reset authority scoped
---------
Co-authored-by: TheAngryPit <16145902+TheAngryPit@users.noreply.github.com >
2026-08-12 12:38:13 -07:00
Peter Steinberger
c23d66e3b5
refactor: consolidate coercion ownership ( #122692 )
...
* refactor: consolidate coercion ownership
* test: align shard check with weighted planning
* chore: refresh plugin SDK API baseline
2026-08-12 09:25:28 -07:00
Peter Steinberger
1f8fdf4ef0
refactor(memory-core): consolidate manager test fixtures ( #122671 )
...
* test(memory-core): consolidate manager index fixtures
* test(memory-core): table-drive manager state cases
* test(memory-core): type shared fixture surface
2026-08-12 08:50:09 -07:00
Peter Steinberger
7e42dae611
refactor(memory-core): split index manager along the inheritance chain ( #122540 )
...
* refactor(memory-core): split index manager along the inheritance chain
* fix(memory): restore the manager lazy boundary
* refactor(memory-core): delete dead manager plumbing
* chore(lint): ratchet max-lines baseline after memory manager split
* fix(memory): keep the manager out of the runtime facade
* test(memory): cover transitive manager facade imports
2026-08-12 02:28:20 -07:00
Peter Steinberger
b080dd1e76
refactor: consolidate coercion contracts ( #122458 )
...
* refactor: consolidate coercion contracts
Centralize exact string, record, numeric, date, Boolean, argument, and structured-error coercions while preserving call-site semantics.
Migrate canonical-name collisions and deprecated internal SDK bypasses, deleting 55 net production/tooling lines. Expand declaration ownership enforcement to 101 allowed helpers and add a narrow export-completeness audit.
* fix: preserve standalone script coercions
Keep copied Control UI tooling self-contained and retain the trusted release harness module-relative source seam when the harness runs against an old target cwd.
2026-08-11 23:26:37 -07:00
Stellar鱼
25e48de95b
fix(memory-core): preserve strict hybrid result slots ( #92524 )
...
Punchcard-Session: cobalt-lantern-summit-fz
2026-08-12 08:10:56 +08:00
Peter Steinberger
723c7f9a7d
fix(memory): publish dreaming artifacts atomically ( #122343 )
2026-08-11 16:53:47 -07:00
Peter Steinberger
cad77fb39c
refactor: consolidate remaining coercion helpers ( #122020 )
2026-08-11 10:22:01 -07:00
Peter Steinberger
03f56cfbc3
fix(memory): accept Windows extra-file Markdown casing ( #121976 )
...
* fix(memory): accept Windows extra-file Markdown casing
* fix(memory): keep extra-file casing policy private
2026-08-11 04:21:15 -07:00
Peter Steinberger
fa03d9b913
refactor: consolidate coercion helpers ( #121366 )
...
* refactor: consolidate coercion helpers
* fix: remove duplicate coercion imports
* fix: preserve serialized coercion guard
* chore: ratchet coercion helper carve-outs
* fix(test): keep gauntlet subprocess startup lean
* fix: preserve imported session timestamp semantics
* fix: preserve catalog timestamp string semantics
* chore: align plugin SDK surface ratchet
* fix: preserve trajectory and SDK string contracts
* fix(test): preserve QA record assertion semantics
* fix: complete standalone record guard rename
* refactor(cron): use canonical string coercion
* fix(acpx): preserve Pi timestamp parsing
* test(channels): adapt custody test harnesses
* test(telegram): classify media harness as test support
* test(acpx): split timestamp contract coverage
* test(channels): support generated custody contracts
* chore: ban the full coercion helper name set
Extends the declaration guard to all eleven consolidated helper names and
renames the cron schedule-identity readNumber wrapper to readScheduleInteger
so the banned generic name cannot regrow.
* fix(scripts): repair release-validation guard drift and lint cause
Restores the renamed isJsonRecord guard in assertTrustedWorkflowHarness after
main added isRecord call sites in parallel, and attaches the caught YAML error
as the thrown error cause (preserve-caught-error was red on main).
* fix: preserve Claude timestamp string semantics
* fix: preserve persisted timestamp string semantics
* fix: preserve date-first timestamp contracts
* fix(openai): harden delegation failure formatting
* chore: close coercion helper guard gaps
* test(openai): model non-error delegation rejection
* chore: refresh plugin SDK API contract
* fix(tasks): use canonical string field reader
* fix(ai): use canonical provider error field coercion
* fix(browser): migrate native bootstrap coercion
* docs(plugin-sdk): clarify text record export compatibility
* fix(gateway): normalize approval execution identity
* test(outbound): isolate message action poll harness
2026-08-11 00:02:18 -07:00
Peter Steinberger
a381aa3e8b
fix(memory): restrict multimodal indexing to extra paths ( #121627 )
...
* fix(memory): restrict multimodal indexing to extra paths
* fix(state): add lazy secret store schema ensure
* fix(state): bound lazy secret store schema
* chore(plugin-sdk): refresh API baseline
2026-08-10 19:00:45 -07:00
RowanZhong
1e1f1b1d54
fix(memory): avoid rebuilding the index after empty searches ( #114183 )
...
Co-authored-by: RowanZhong <zhonghongfa09@gmail.com >
Punchcard-Session: cobalt-orchard-willow-ps
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-11 09:07:10 +08:00
Hannes Rudolph
d6317094a9
fix(memory): prune stale session index rows at startup ( #121665 )
...
* fix(memory): prune stale session index rows at startup
* fix(memory): reconcile stale sessions without re-embedding
* oc-9df: fail closed on session corpus scan errors
---------
Co-authored-by: Josh Lehman <550978+jalehman@users.noreply.github.com >
2026-08-10 16:11:35 -07:00
Peter Steinberger
f1c1771a07
fix(memory): apply project ranking before MMR ( #121608 )
2026-08-10 07:16:55 -07:00
Peter Steinberger
3b3c540896
refactor: remove dead branches and test-only helpers ( #121345 )
...
* refactor: remove dead branches and test-only helpers
* fix: preserve codex cleanup error causes
* fix: preserve gateway error code compatibility
* chore: update plugin sdk api baseline
* docs: fix live cache runner path
2026-08-10 06:47:43 -07:00
Peter Steinberger
c37b53868d
feat(memory): enable MMR diversity by default ( #121224 )
...
Apply deterministic relevance-biased diversity ordering to builtin hybrid recall and preserve distinct non-tokenized snippets.
2026-08-09 13:30:18 -07:00
Peter Steinberger
690f7d7778
refactor(memory): remove obsolete readonly recovery ( #120844 )
2026-08-09 13:10:58 -07:00
Peter Steinberger
8dbd30ba74
feat(memory): per-entry glob patterns for extraPaths ( #121209 )
...
* feat(memory): support globbed extra paths
Allow root-relative glob patterns on existing memory.search.extraPaths entries across discovery, watching, reindex identity, and QMD migration.
* fix(memory): drop stale lease type import
* fix(memory): enforce extra path glob scope
2026-08-09 13:05:24 -07:00
Peter Steinberger
26e74d8d18
feat(memory): expand conversational recall queries ( #121196 )
...
Supplement thin strict FTS candidate pools with bounded keyword probes while keeping embedding calls unchanged.
2026-08-09 11:55:57 -07:00
Peter Steinberger
9809375fda
refactor(plugins)!: remove the plugin state lease API ( #121140 )
...
* refactor(plugins)!: remove plugin state lease API
* docs(plugins): document state lease removal
2026-08-09 11:16:07 -07:00