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
Omar Shahine
641ccba793
fix(cli): allow agent selection for direct inference ( #125143 )
...
* fix(cli): inherit inference agent options
* fix(cli): route inference model auth agents
* fix(cli): route video describe agent
* fix(cli): route audio transcription agent
* fix(cli): preserve inherited agent selectors
---------
Co-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com >
2026-08-19 21:27:09 -07:00
Jacqueline Henriksen
eed64163b6
refactor(cli): make multi-agent operations agent-owned ( #123871 )
...
* refactor(cli): make multi-agent operations agent-owned
* fix(cli): keep provider setup on agent target
* fix(cli): preserve legacy operation ownership
* fix(cli): align capability target calls with current resolver
* fix(cli): preserve operation-specific agent errors
* fix(cli): keep allowlist selection agent-scoped
* fix(cli): preserve agent-owned model operations
* fix(cli): preserve list-form agent rosters
---------
Co-authored-by: Josh Lehman <550978+jalehman@users.noreply.github.com >
2026-08-19 19:54:00 -07:00
Peter Steinberger
19316660e4
fix(agents): consolidate ambient owner resolution ( #126504 )
2026-08-19 18:54:32 -07:00
Peter Steinberger
4994f7bacf
fix(cli): resolve infer command owners via --agent and systemAgent fallback ( #126234 )
...
* fix(cli): resolve infer command owners via --agent and systemAgent fallback
Multi-agent rosters (agents.ownership=explicit) dead-ended every infer
runner command: resolveDefaultAgentId threw AgentSelectionRequiredError
telling callers to pass --agent, a flag none of the commands registered,
and agents.defaults.systemAgent.agentId was ignored.
Route model run, image generate/edit/describe/describe-many, video
generate, embedding create, and model auth logout through the existing
resolveCapabilityProviderAgentId chain (explicit --agent, then
agents.defaults.systemAgent.agentId, then the sole agent) with
per-command error surfaces, and register --agent on each command.
* docs(config): scope systemAgent infer fallback help to agent-owned commands
2026-08-19 08:44:52 -07:00
Peter Steinberger
72e67904be
fix(cli): infer provider lists respect selected agent ( #123884 )
...
* fix(cli): require inference provider owners
* test(cli): type provider owner fixtures
* chore: leave infer release note to release
2026-08-14 16:45:37 -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
3d76246792
refactor: eliminate final export name collisions ( #122083 )
...
* refactor: resolve final export name collisions
* refactor: update remaining collision rename consumers
* style: format rebased auth helpers
* test: update remaining session entry mocks
* test: update remaining runtime mock exports
* test: update delivery info path mock
* refactor: reconcile combined collision sweeps
* chore: regenerate collision and sdk baselines
2026-08-11 11:18:24 -07:00
Peter Steinberger
ebb2770000
refactor: eliminate export name collisions ( #122084 )
...
* refactor: eliminate export name collisions
* chore(scripts): burn resolved collision baselines
* refactor: narrow legacy session load options
* chore: refresh SDK and session debt baselines
* refactor: adopt upstream secrets collision fix
* test(plugin-sdk): mock renamed session store core
* fix(scripts): track renamed session accessor core
2026-08-11 10:41:50 -07:00
Peter Steinberger
e7a9f33d89
refactor(core): adopt normalization-core leaf helpers across production ( #120350 )
...
* refactor(core): adopt normalization-core leaf helpers across production
* fix(ci): keep plugin contract source-resolvable
* fix(errors): preserve adapter-owned error fields
* fix(errors): short-circuit existing errors before stringifying
* fix(errors): skip throwing structured getters
* ci: retrigger checks on current base
* fix(errors): guard structured error enumeration
* fix: harden error detail copying
2026-08-08 12:00:49 -07:00
Peter Steinberger
752dd2b5b8
refactor(cli): consolidate repeated command registration ( #119434 )
2026-08-04 20:51:32 -07:00
Peter Steinberger
5739f42c48
fix(nodes): preserve screen output on write failure ( #117973 )
...
* fix(nodes): publish screen output atomically
Closes #117970
* fix(nodes): keep output schema unchanged
2026-08-02 05:22:34 -07:00
Peter Steinberger
85e4094529
fix(cli): publish TTS output atomically ( #117962 )
2026-08-02 04:08:55 -07:00
Peter Steinberger
610ca42ce3
fix(cli): publish buffered media atomically ( #117934 )
2026-08-02 03:15:50 -07:00
Peter Steinberger
83fa625fb6
fix(cli): reject incomplete hosted video downloads ( #117893 )
...
* fix(cli): validate streamed video downloads
* test: repair CLI and plugin test gates
2026-08-02 02:03:37 -07:00
Vincent Koc
59c3606366
fix(cli): propagate web provider failures ( #116674 )
2026-07-31 13:21:21 +08:00
Peter Steinberger
964c5abbde
fix(cli): reject malformed infer model refs ( #115225 )
2026-07-28 12:03:58 -04:00
Peter Steinberger
1602d457ba
fix(cli): harden infer concurrent workflows ( #115170 )
2026-07-28 08:13:56 -04:00
Peter Steinberger
521d05f290
fix(cli): harden infer provider workflows ( #115054 )
2026-07-28 04:05:30 -04:00
Peter Steinberger
f275db6974
refactor: remove dead split facades ( #114726 )
...
* refactor: remove dead split facades
* fix: update facade ownership references
2026-07-27 16:32:52 -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
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
Peter Steinberger
06f5f73e47
refactor: own model discovery by runtime lifecycle ( #111173 )
...
* refactor(agents): prepare model runtime catalogs
Build lifecycle-owned model and auth snapshots, carry prepared stores into hot agent paths, and serialize config/auth publication.
Credits @zeroaltitude's #90741 investigation and benchmark approach.
* refactor: finish lifecycle-owned model discovery
* fix: align prepared model catalog contracts
* test: align lifecycle catalog mocks
* test: fix prepared catalog type fixtures
* refactor: split prepared model runtime ownership
* fix: import prepared runtime replacement gate type
* test: split media runtime coverage
* test: preserve image auth fixture key types
* test: isolate lifecycle gate fixtures
* chore: keep release changelog owned
* refactor: finish prepared model catalog migration
* test: keep catalog review fixtures scanner-safe
* refactor: preserve lifecycle model runtime ownership
* fix: close prepared runtime lifecycle races
* fix: preserve compaction workspace fallback
* chore: document btw generation rebinding
* fix: preserve prepared generation boundaries
* fix: keep model-list discovery flag explicit
* fix: serialize standalone model runtime activation
* refactor: migrate subagent model catalog lookup
* refactor: clarify doctor catalog lookup seam
* chore: refresh plugin sdk api baseline
* test: migrate swarm catalog dependency
* refactor(telegram): rename runtime catalog seam
* refactor: extract model-aware tool context
* test(models): isolate lifecycle catalog fixtures
* refactor(agents): avoid btw parameter rebinding
* fix(net-policy): align root ipaddr dependency
* fix(build): keep net policy dependency bundled
* fix(deadcode): document net policy compile dependency
2026-07-19 05:30:54 -07:00
Peter Steinberger
9c065c895e
refactor(cli): split capability commands by domain ( #108419 )
...
* refactor(cli): split capability commands by domain
* fix(cli): keep capability metadata type private
2026-07-15 16:57:21 -07:00