Peter Steinberger
43a695396d
test(memory): mock admitted search sync ( #114096 )
2026-07-26 07:33:24 -04:00
yt2102
6bd8e0387c
fix(memory): close previous embedding provider before replacement ( #113471 )
...
* fix(memory): close previous embedding provider before replacement
* fix(memory): increase embedding worker close grace period for slow hosts
* fix(memory): clear this.provider after close in resetProviderInitializationForRetry
Co-authored-by: Sanjay Santhanam <notifications@github.com >
* fix(memory): serialize embedding provider replacement
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): unify provider transition lifecycle
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): join worker shutdown lifecycle
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): block worker restart during close
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): retain failed provider retirements
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): drain retirements on manager close
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): make worker close joinable
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): preserve sync before provider retirement
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): separate worker exit from disposal errors
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): avoid shutdown admission gap
Co-authored-by: yt2102 <yt2102@qq.com >
* style(memory): format provider lifecycle fix
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): bound embedding worker termination
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): fail closed on fallback initialization errors
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): retry primary after fallback creation failure
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): retain disconnected embedding workers until exit
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): isolate shared fallback transition failures
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): serialize scoped manager retirement
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): retain failed global manager closes
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): serialize manager admission with teardown
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): serialize outer manager lifecycle
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(gateway): close request-scoped embedding providers
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): retire qmd managers before replacement
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(gateway): support synchronous embedding cleanup
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): isolate manager lifecycle scopes
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(cli): close request-scoped embedding providers
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): canonicalize manager lifecycle ownership
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): retry primary after null fallback result
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(gateway): retain failed embedding provider closes
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(gateway): lease closable embedding providers
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(gateway): drain retained embedding providers
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): join lazy fallback teardown
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(gateway): drain embedding providers after HTTP close
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): retain failed qmd candidate cleanup
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): aggregate retained qmd teardown failures
Co-authored-by: yt2102 <yt2102@qq.com >
* refactor(memory): keep qmd lifecycle policy unchanged
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): retain failed worker construction clients
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(gateway): scope local embedding retirement by provider
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): drain provider generations before retirement
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): drain admitted operations before teardown
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): preserve provider identity through vector search
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): lease provider generation through embedding
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): lease provider through index publication
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): keep sync harness hooks optional
Co-authored-by: yt2102 <yt2102@qq.com >
* refactor(memory): own generations in sync lifecycle
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): preserve query runtime across retirement
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): pin FTS-only sync generations
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): retry failed worker construction cleanup
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): drain admitted searches before closing
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): close manager and gateway admission races
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): serialize qmd wrapper replacement
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): serialize failed qmd retirement
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): satisfy qmd lifecycle type and deadcode gates
Co-authored-by: yt2102 <yt2102@qq.com >
* test(memory): type qmd lifecycle doubles
Co-authored-by: yt2102 <yt2102@qq.com >
* style(gateway): clarify created embedding provider
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): drain availability probes before close
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): preserve cleanup ownership without blocking fallback
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): retire lancedb embedding providers
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): preserve generic provider cleanup receiver
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): close lancedb CLI embeddings
Co-authored-by: yt2102 <yt2102@qq.com >
* test(memory): normalize abort rejection reason
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): retain lancedb provider retirements
Co-authored-by: yt2102 <yt2102@qq.com >
* fix(memory): drain lancedb embedding uses
Co-authored-by: yt2102 <yt2102@qq.com >
---------
Co-authored-by: Sanjay Santhanam <notifications@github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-26 03:00:22 -04:00
Peter Steinberger
99d8d90572
refactor(memory-core): split CLI runtime ( #114013 )
...
* refactor(memory-core): split CLI runtime
* refactor(memory-core): narrow CLI helper exports
* test(memory-core): follow secret resolver split
2026-07-25 21:37:59 -07:00
Peter Steinberger
6d6f36a8a5
refactor(memory-core): separate dreaming state codec ownership ( #113949 )
2026-07-25 18:22:44 -07:00
Peter Steinberger
93a0fdb9b8
fix(release): align extension validation contracts ( #113919 )
2026-07-25 17:07:51 -07:00
Peter Steinberger
9a7a5791c7
refactor(memory): split QMD manager by domain ( #113659 )
...
* refactor(memory): split QMD manager by domain
* refactor(memory): keep QMD base types private
2026-07-25 06:18:05 -07:00
Peter Steinberger
48ab15851b
test: consolidate Slack and QMD matrices ( #113574 )
2026-07-25 01:53:49 -07:00
Peter Steinberger
2942678214
refactor(memory): split retained state migrations ( #113542 )
2026-07-25 01:03:35 -07:00
Peter Steinberger
1e93465a2a
refactor(sqlite): enforce one database connection boundary ( #113418 )
...
* refactor(sqlite): centralize database opens
* test(sqlite): mock connection owner boundary
2026-07-24 15:15:17 -07:00
Peter Steinberger
7d5fb6f242
test(release): align extension prerelease contracts ( #113381 )
2026-07-25 02:30:35 +08:00
Peter Steinberger
73bba03e4c
refactor: canonicalize session delivery state ( #113225 )
...
* refactor: canonicalize session delivery state
* test: canonicalize reply persistence fixtures
* test: canonicalize talk delivery fixtures
* test: canonicalize voice session routes
* test: canonicalize attachment delivery fixtures
* test: migrate gateway delivery fixtures
* fix: skip invalid session delivery rows
* test: align delivery SDK surface gates
* fix: preserve legacy delivery precedence
* test: canonicalize heartbeat delivery fixtures
* fix: preserve delivery route prompt identity
* test: canonicalize session delivery fixtures
* fix: preserve recoverable legacy delivery routes
* fix: canonicalize remaining session state
* fix: preserve canonical session classification
* style: format delivery state changes
* test: refresh plugin SDK delivery baseline
* test: avoid mutating session fixture input
* style: simplify delivery identity check
* style: simplify delivery origin spread
* fix: preserve fresh delivery route metadata
* test: assert canonical surface route switch
* fix: canonicalize doctor file-store imports
* fix: preserve transitional delivery migration state
* fix: satisfy canonical delivery CI gates
* ci: scope GitHub App token permissions
* test: infer canonical delivery projections
* test: canonicalize ACP requester delivery fixtures
* test: canonicalize harness rollback fixture
* style: apply pinned formatter
2026-07-24 01:01:19 -07:00
Peter Steinberger
a7d2f0bd68
refactor(memory-core): split short-term promotion ( #113223 )
2026-07-24 00:02:05 -07:00
Peter Steinberger
bb657eec93
refactor(config): retire redundant settings ( #113174 )
...
* refactor(config): retire redundant settings
* style: apply current formatter
* chore: update plugin sdk baseline
* fix: keep Codex tool caps context-aware
* chore: remove stale imports
* test: align WhatsApp QA debounce config
* fix(config): clean up retired config checks
* fix(ci): align config cleanup checks
2026-07-23 17:45:02 -07:00
Peter Steinberger
acd92f6a3d
chore(deps): refresh repository dependencies ( #112453 )
...
* build(deps): update QA broker dependency
* build(deps): refresh repository dependencies
* build(deps): reconcile rebased shrinkwraps
* test(plugins): remove stale loader test state
* test(deps): stabilize updated dependency coverage
* fix(swift): use caller-isolated TaskLocal overload
* build(deps): regenerate rebased shrinkwraps
* test(msteams): preserve DNS validation in fetch helper
* fix(deps): avoid vulnerable optional image stack
* test(deps): validate generated LRU override
* refactor(ui): extract chat resizable divider
* test(ui): update divider ownership path
* fix(matrix): retain restart-compatible SDK
* style(cron): format update test
2026-07-23 16:17:13 +00:00
Peter Steinberger
5cc1e6be62
test(memory): consolidate qmd manager fixtures ( #112885 )
2026-07-23 01:33:58 -04:00
Yuval Dinodia
0f3855aa81
fix(memory-core): keep live reindex of reset/deleted session archives ( #96132 )
...
* fix(memory-core): keep live reindex of reset/deleted session archives
The session transcript listener dropped every archive artifact before
scheduling, so .jsonl.reset and .jsonl.deleted archives written by /reset
and session delete were no longer indexed on the live path and only
surfaced in memory search after the next gateway restart. Remove the
archive guard so in-agent archives fall through to scheduleSessionDirty,
which reaches the usage-counted-archive branch in processSessionDeltaBatch.
Regression from #89912 ; restores the incremental archive indexing added in
* fix(memory-core): constrain live archive indexing
* test(memory-core): align migrated search fixtures
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-22 15:13:47 -07:00
Vito Cappello
4ab686220f
fix(memory): recover from same-file legacy index divergence ( #110216 )
...
* fix(memory): keep canonical rows when same-file legacy memory tables diverge
* fix(memory): keep canonical-owned sources' chunk sets coherent during legacy import
* fix(memory): import legacy chunks when canonical source has no chunks
The same-file legacy migration excluded a legacy chunk from import whenever the
canonical index already had a source row for its (path, source). That stranded a
file whose canonical source was registered but had no chunks yet (indexing
interrupted before chunks were written, or embedding pending/failed): the legacy
chunks were its only searchable content, and the matching source hash stops sync
from re-indexing, so the file went silently unsearchable.
Re-key the chunk-coherence exclusion on canonical chunk ownership instead:
snapshot the (path, source) pairs that already have canonical chunks before the
import and skip legacy chunks only for those. A source with a canonical row but
no chunks now imports its legacy chunks. The snapshot is taken pre-insert because
the exclusion predicate reads the chunks table the import writes to.
Add regressions: legacy chunks import for a chunk-less canonical source while a
chunk-owning source still drops its stale legacy chunk; and restore abort
coverage for the meta and chunks copy assertions (previously only files was
exercised).
* fix(memory): harden same-file legacy conflict recovery
* fix(memory): rebuild ambiguous partial legacy sources
* fix(memory): reconcile migrated derived indexes
* fix(memory): close migrated index ownership gaps
* test(memory): align migration expectations
* test(tooling): match routed test order
* test(memory): exercise vector reload cleanup
* test(memory): prove real vector reload cleanup
* fix(memory): make migrated indexes converge
---------
Co-authored-by: Serhii Leniv <leniv.tech@gmail.com >
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-22 00:27:01 -07:00
Andrey Bugaev
2727b6ec23
Fix live orphan session transcript visibility ( #92261 )
...
* Fix live orphan session transcript visibility
* Keep live orphan fallback internal
* Remove unnecessary transcript fallback rename
* test(memory): preserve orphan visibility coverage
* fix(memory): scope orphan transcript fallback
* fix(memory): require agent-wide orphan visibility
---------
Co-authored-by: Andrey Bugaev <370409306+skocher@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-21 22:16:07 -07:00
Peter Steinberger
edecdbd05e
refactor(config): config-surface reduction tranche 3 — product consolidations (review request) ( #111527 )
...
* refactor(config): consolidate media model lists
* refactor(config): unify memory configuration
* refactor(config): consolidate TTS ownership
* refactor(config): move typing policy to agents
* refactor(config): retire product-level config surfaces
* refactor(config): share scoped tool policy type
* chore(config): refresh generated baselines
* fix(config): honor agent typing overrides
* fix(config): migrate sibling config consumers
* refactor(infra): keep base64url decoder private
* fix(config): strip invalid legacy TTS values
* chore(config): refresh rebased baseline hash
* fix(doctor): route legacy messages.tts.realtime voice to talk during tts move
* refactor(config): polish final layout names
* refactor(config): freeze retired tuning defaults
* feat(config): add fast mode default symmetry
* refactor(config): key agent entries by id
* docs(config): update final layout reference
* test(config): cover final layout migrations
* chore(config): refresh final layout baselines
* fix(config): align final layout runtime readers
* fix(config): align remaining readers
* fix(config): stabilize final layout migrations
* fix(config): finalize config projection proof
* fix(config): address final layout review
* docs(release): preserve historical config names
* fix(config): complete keyed agent migration
* fix(config): close final migration gaps
* fix(config): finish full-branch review
* fix(config): complete runtime secret detection
* fix(config): close final review findings
* fix(config): finish canonical docs and heartbeat migration
* fix(config): integrate latest main after rebase
* refactor(env): isolate test-only controls
* refactor(env): isolate build and development controls
* refactor(env): collapse process identity indirection
* refactor(env): remove duplicate config and temp aliases
* docs(env): define the operator-facing allowlist
* ci(env): ratchet production variable count
* fix(env): remove stale provider helper import
* fix(env): make ratchet sorting explicit
* test(env): keep test seam in dead-code audit
* test(env): cover ratchet growth and boundary; document surface budgets
* docs(config): document tier-eval consolidations
* docs(config): clarify speech preference ownership
* test(memory): align retired tuning fixtures
* refactor(memory): freeze engine heuristics
* refactor(config): apply tier-eval tranche
* refactor(tts): move persona shaping to providers
* refactor(compaction): move prompt policy to providers
* test(config): align hookified prompt fixtures
* chore(deadcode): classify test-only exports
* chore(github): remove unused spawn helper
* chore(deadcode): classify queue diagnostics
* chore(deadcode): remove unused lane snapshot export
* chore(plugin-sdk): ratchet consolidated surface
* fix(config): integrate latest main after rebase
2026-07-21 20:28:43 -07:00
Yuval Dinodia
e942d7eadb
fix(memory-search): preserve vector-only media relevance ( #92196 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-21 01:33:05 -07:00
wahaha1223
1e4e588142
fix(memory-core): guard invalid timestamps in dreaming rankings ( #110537 )
2026-07-20 21:59:41 -07:00
Peter Steinberger
3564c1c795
fix(test): bound Matrix test process memory ( #111607 )
...
* test: bound Matrix test process memory
* test: align Matrix runner mock contract
2026-07-19 20:04:14 -07:00
Peter Steinberger
7aedca21b2
test(release): align built-in timing proofs ( #111483 )
2026-07-19 09:42:16 -07:00
Peter Steinberger
783a5d21cf
refactor(config): purge numeric tuning knobs behind built-in defaults ( #111382 )
2026-07-19 07:35:45 -07:00
Peter Steinberger
c2431dfcd2
test(memory): isolate qmd shard fixtures ( #110863 )
2026-07-18 18:40:02 +01:00
Peter Steinberger
9d97e10efe
refactor: move non-session runtime journals to SQLite ( #109427 )
...
* refactor: migrate runtime JSONL state to SQLite
* chore: refresh SQLite migration validation
* fix: preserve safe audit migration order
* fix: sanitize retired audit archives safely
* fix: satisfy SQLite storage architecture gates
* fix: serialize plugin doctor state migrations
* fix: bound memory event SQLite projections
* fix: rotate memory event projections safely
* fix: preserve imported event retention age
* fix: harden memory event export projection
* fix: canonicalize memory event migrations
* fix: harden legacy journal migrations
* fix: report unsafe legacy journal paths
* fix: preserve journal ownership during migration
* fix: keep legacy file imports doctor-only
* fix: align SQLite audit CI coverage
* refactor: keep state helpers module-private
* fix: harden legacy state migration recovery
* fix: reconcile SQLite state audit migration
* test: use neutral audit redaction fixtures
* fix: close SQLite migration recovery gaps
* refactor: split audit migration recovery helpers
* test: prove completed audit pads stay out of backups
* fix: preserve audit record ordinals across blank lines
* fix: align SQLite audit CI contracts
* build: package SQLite audit E2E entries
* fix: preserve audit ordinals in backup snapshots
2026-07-18 11:42:14 +01:00
Dave Morin
4b3ee5e7eb
feat: let agents remember across private conversations ( #100140 )
...
* feat(memory): remember across private conversations
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
* chore(docs): regenerate config baseline
* fix(memory): restore recall configuration wiring
* fix(memory): scope recall transcript indexing
* test(memory): repair conversation recall fixtures
* test(memory): split session visibility coverage
* style(memory): format type imports
---------
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 08:21:43 +01:00
Josh Lehman
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
Peter Steinberger
0e792b6de3
refactor(channels): centralize inbound orchestration and remove internal compat ( #109716 )
...
* refactor(channels): centralize inbound turn orchestration
* refactor(runtime): remove stale compatibility paths
* chore(guards): reject internal deprecated API use
* refactor(channels): simplify core turn planning
* chore(guards): keep deprecated checks boundary-focused
* refactor(memory): keep modern config off compat barrel
* fix(msteams): preserve feedback learning
* test(channels): align modern inbound fixtures
* refactor(channels): finish modern inbound migration
* refactor(channels): tighten core inbound kernel
* fix(channels): preserve turn assembly narrowing
* test(sdk): keep runtime mock binding immutable
* test(matrix): isolate read policy runtime
* test(msteams): mock canonical reply factory
* test(slack): mock core inbound turn dispatch
* test(telegram): inject core session recorder
* test(signal): inject core session recorder
* test(googlechat): assert canonical inbound routing
* test(synology-chat): align core turn fixture
* fix(sdk): preserve direct DM runtime compat
* refactor(channels): own inbound envelope compat in core
* refactor(channels): trim inbound dispatch seams
* refactor(channels): remove redundant async wrappers
* test(synology-chat): type canonical dispatcher mock
* refactor(channels): remove remaining dead compat seams
* chore(sdk): refresh API baseline after rebase
* fix(channels): preserve direct DM identity metadata
2026-07-17 00:56:46 -07:00
Edward Abrams
8fa4867ab4
fix(memory): avoid rebuilding unchanged QMD session exports ( #77158 )
...
* perf(memory): cache qmd exports by corpus revision
Co-authored-by: Edward Abrams <zeroaltitude@gmail.com >
* test(memory): track qmd exporter temp dirs
* test(memory): use plugin SDK temp fixture
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 23:22:40 -07:00
Peter Steinberger
e873a7f955
refactor(memory): move QMD coordination to SQLite ( #109636 )
...
* refactor(memory): move QMD coordination to SQLite
* chore: keep release notes in PR body
* chore: annotate lease SQLite primitive
2026-07-16 22:01:34 -07:00
Peter Steinberger
48866bbc40
fix(memory): preserve linked MEMORY.md during promotion ( #108921 )
...
* fix(memory): preserve promotion symlink targets
Follow-up to #108397 .
* fix(memory): retain writable-target compatibility
* fix(memory): prove atomic rename stage
2026-07-16 04:46:29 -07:00
Yuval Dinodia
0317d7e628
fix(memory-core): write MEMORY.md atomically during short-term promotion ( #108397 )
...
* fix(memory-core): write MEMORY.md atomically during short-term promotion
applyShortTermPromotions rewrote MEMORY.md with a single non-atomic
fs.writeFile, which truncates the file before streaming the new content.
An OS write failure part way through (for example EFBIG on a size-limited
or full volume) left MEMORY.md truncated to the bytes written before the
failure, permanently dropping user long-term memory. The dreaming cron
path invokes this writer automatically, and the recall store is only
updated after the write, so the promotion stays eligible and the next
run reads the already-truncated file.
Route the write through replaceFileAtomic (temp file, fsync, atomic
rename), the same durable-write helper the sibling DREAMS.md writer in
this extension already uses. On failure the temp file is discarded and
the existing MEMORY.md is left untouched; on success the content and the
existing file mode are preserved.
* fix(memory-core): harden atomic promotion durability
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 03:43:21 -07:00
Peter Steinberger
30ae21fca7
fix: prevent SQLite lock stalls and schema drift ( #108663 )
...
* fix: harden SQLite state storage
* build: allow strict SQLite migration SQL
* test: align SQLite and model-default assertions
2026-07-16 01:45:06 -07:00
Peter Steinberger
dde90a345a
refactor(plugin-sdk): narrow wildcard barrels to explicit used exports ( #108440 )
...
* refactor(plugin-sdk): narrow wildcard barrels to explicit used exports
* refactor(tools): delete dead tool-planning module exposed by barrel narrowing
* fix(plugin-sdk): restore deprecation tag on OpenClawSchemaType alias
* test(agents): drop test for deleted runtime proxy module
* refactor(tools): trim descriptor types to cache consumers
* refactor(deadcode): harvest exports orphaned by barrel narrowing
* refactor(deadcode): harvest exports orphaned by barrel narrowing (rest)
* fix(agents): restore sdk imports and test markers via public predicate
* fix(plugin-sdk): named type re-exports in plugin-entry; trim types barrel precisely
* chore(plugin-sdk): account unmasked deprecated provider types in budgets
* fix(plugins): name star-only type rows for dts bundling
* fix(plugins): restore host-hook surface; unexport internal api compositions
* fix(plugins): named type imports for api composition; restore needed source exports
* fix(plugins): knip-visible type imports for registry surfaces
* test: adapt tests to privatized media and command internals
* fix(qa-lab): re-export snapshot conversation type
* style: format sessions sdk imports
* fix(plugins): restore smoke entry export; pin budgets to exact actuals
* fix(plugins): canonical smoke-entry import; drop orphaned root shims
* fix(plugins): allowlist manifest probe, repoint qa web import, drop dead browser barrels
* fix(plugin-sdk): pin codex auth marker and scaffold provider type
* fix(qa-lab): keep web-facing model-selection shim within boundary rules
* fix(plugin-sdk): preserve merged contracts through narrowed barrels
* chore(plugin-sdk): pin post-rebase surface budgets
2026-07-16 00:45:23 -07:00
Peter Steinberger
863443fac8
fix(memory): recover derived sidecar conflicts ( #108652 )
2026-07-15 23:55:07 -07:00
Peter Steinberger
c077e801dd
refactor(memory-core): split manager sync operations ( #108583 )
2026-07-15 21:12:22 -07:00
Peter Steinberger
4a2c381a3a
test(memory): model qmd child stream encoding ( #107827 )
2026-07-14 16:10:44 -07:00
Peter Steinberger
6495523a02
test(memory): model qmd child stream encoding ( #107740 )
2026-07-14 13:38:52 -07:00
felirami
c1191cdf2f
fix(memory-core): preserve canonical cache rows during legacy migration ( #107243 )
...
* fix(memory-core): preserve canonical cache rows on migration
* fix(memory-core): guard cache migration dimensions
* fix(memory-core): validate cache embedding lengths
* fix(memory-core): validate cache migration dimensions
* refactor(memory-core): keep cache guard compact
---------
Co-authored-by: felirami <felirami@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 09:40:35 -07:00
Peter Steinberger
f81f9d8570
chore: enforce max-lines suppression ratchet ( #107315 )
...
* ci: enforce max-lines suppression ratchet
* chore: prune stale max-lines suppression
* fix: close max-lines ratchet enforcement gaps
* fix: harden max-lines ratchet checks
* fix(ci): satisfy max-lines ratchet checks
* style: format max-lines declarations
* fix(ci): match oxlint suppression grammar
* test: isolate max-lines git fixtures
* chore: prune resolved max-lines debt
* test: skip newline path fixture on Windows
* fix: harden max-lines suppression ratchet
* chore: refresh max-lines baseline
* fix: close max-lines ratchet bypasses
* fix: derive ratchet base from PR merge tree
* fix: support older Git in staged ratchet
* fix: align max-lines declarations and baseline
* chore: refresh max-lines baseline for current main
* fix: exclude generated wizard locales from max-lines
* chore: prune resolved max-lines debt
2026-07-14 09:27:02 -07:00
Peter Steinberger
6ceb72d2bd
refactor(memory): split QMD manager responsibilities ( #107381 )
...
* refactor(memory): split QMD manager responsibilities
* fix(memory): keep QMD helper types private
* style(memory): format QMD debug types
2026-07-14 04:07:51 -07:00
Peter Steinberger
4974750614
refactor(memory): use Chalk theme builders directly
2026-07-14 00:36:04 -07:00
Peter Steinberger
4da0eb19c5
fix(state): converge legacy startup migrations ( #107002 )
...
* fix(state): converge legacy startup migrations
Co-authored-by: Eva <eva@100yen.org >
* refactor(state): split legacy migration helpers
* fix(memory): persist legacy source acknowledgements
* fix(state): remove stale migration imports
* fix(memory): recognize numbered migration archives
* fix(matrix): downgrade archived migration residue
* fix(memory): satisfy migration lint
---------
Co-authored-by: Eva <eva@100yen.org >
2026-07-13 20:05:24 -07:00
wangmiao0668000666
5f681a1cb8
fix(memory-core): clear pending-update wait timer after update settles ( #106173 )
...
* fix(memory-core): clear pending-update wait timer after update settles
* test(memory-core): wrap setImmediate Promise executor in block body
`oxlint(no-promise-executor-return)` (enabled in the bundled-extension
config used by `pnpm lint:extensions:bundled` /`check-lint` /
`check-additional-extension-bundled`) flags the implicit return from
`new Promise((resolve) => setImmediate(resolve))`. The arrow function
is expression-bodied and returns the Immediate handle, which the rule
treats as a return inside a Promise executor.
Switch both occurrences in the regression guard to block bodies so the
executor callback does not return a value. Behavior is unchanged:
setImmediate still fires resolve on the next macrotask; the regression
assertion (process.getActiveResourcesInfo() delta) still passes.
* test(memory-core): track pending wait timer cleanup
* refactor(memory-core): keep timer cleanup LOC-neutral
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-13 15:16:19 -07:00
Peter Steinberger
6d299f383c
refactor(memory-core): remove unused exports
2026-07-13 12:44:33 -07:00
Peter Steinberger
a2da4700be
refactor: consolidate remaining bounded concurrency ( #106265 )
2026-07-13 03:16:28 -07:00
Peter Steinberger
581cf6601a
refactor(deadcode): trim memory-core type exports ( #106263 )
2026-07-13 03:04:08 -07:00
Peter Steinberger
2237196871
refactor(extensions): remove dead QA and utility exports ( #105914 )
...
* refactor(extensions): remove dead QA and utility exports
* refactor(extensions): trim Matrix QA internal exports
* chore(deadcode): refresh extension export baseline
* chore(ci): reconcile deadcode and LOC baselines
* chore(deadcode): refresh baseline after main advance
* chore(deadcode): refresh baseline after main advance
* refactor(plugins): keep channel snapshot type private
* fix(ci): align Linux deadcode baseline
2026-07-13 00:34:46 -07:00
Ben Badejo
2725742cad
fix(memory): respect QMD timeout for memory_search ( #95757 )
...
* fix(memory): scope qmd search deadline
Preserve the phase-scoped QMD timeout semantics on current main.
Co-authored-by: Peter Steinberger <58493+steipete@users.noreply.github.com >
* docs: refresh generated docs map
* test(memory): reconcile manager mock with current main
* test(memory): isolate deadline mock import
* style(memory): format search test mocks
* test(memory): decouple mock from deadline symbol
* chore(memory): refresh reviewed pull request head
---------
Co-authored-by: Benjamin Badejo <ben@benbadejo.com >
Co-authored-by: Peter Steinberger <58493+steipete@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-13 00:05:13 -07:00