Vincent Koc
4df130d0be
fix(anthropic): honor opus 5 aliases
2026-07-25 19:30:49 +08:00
Vincent Koc
3764d6739e
fix(anthropic): use native fast mode for opus
2026-07-25 19:30:48 +08:00
Vincent Koc
e42401bce7
refactor(anthropic): centralize 1m context capability
2026-07-25 19:30:48 +08:00
Vincent Koc
92188c9e5a
refactor(matrix): use shared string normalization ( #113627 )
2026-07-25 19:26:25 +08:00
Vincent Koc
13126e4bd7
refactor(workboard): share claim token redaction ( #113618 )
2026-07-25 19:06:18 +08:00
joshavant
f153858045
fix(onepassword): make SecretRef setup production-safe
2026-07-25 06:03:30 -05:00
joshavant
56bf326371
fix(onepassword): bound SecretRef resolution lifecycle
2026-07-25 06:03:30 -05:00
joshavant
fb8589ebdb
fix(onepassword): harden trusted op execution
2026-07-25 06:03:30 -05:00
sallyom
f045f33a62
feat(onepassword): add managed SecretRef integration
2026-07-25 06:03:30 -05:00
Peter Steinberger
64daf8dd23
refactor(slack): split message dispatch ( #113602 )
2026-07-25 03:43:24 -07:00
Vincent Koc
967dd9538a
refactor(discord): share handle normalization ( #113608 )
2026-07-25 18:38:43 +08:00
Peter Steinberger
589ac0372e
refactor(zalouser): compile blocks from CommonMark IR ( #113590 )
...
* refactor(zalouser): compile blocks from commonmark ir
* refactor(markdown-core): keep block metadata internal
* test(markdown-core): type hidden block metadata
* refactor(zalouser): drop split-module leftovers
* test(markdown-core): assert serialized metadata shape
* refactor(zalouser): satisfy formatter lint contracts
* refactor(zalouser): internalize source span helpers
* fix(zalouser): preserve nested container semantics
2026-07-25 03:34:53 -07:00
Peter Steinberger
b0603cb443
refactor(fs): adopt shared safe filesystem primitives ( #113596 )
...
* refactor(fs): adopt fs-safe helpers
* fix(zalouser): keep stable per-profile QR temp path
* fix(fs): route adoption through owned facades
2026-07-25 03:24:19 -07:00
Peter Steinberger
91b5b43d78
feat(models): curate default model picker to current-generation catalogs ( #113594 )
...
* feat(models): curate default picker visibility
* chore(models): curate provider catalogs
* test(openai): generalize static-catalog transport guard after row curation (#91710 )
* fix(models): propagate catalog lifecycle metadata
* test(models): keep picker suite within line budget
2026-07-25 03:22:42 -07:00
Peter Steinberger
902cc53279
refactor: batch of independent dedup wins ( #113535 )
...
* refactor(config): reuse session parent fork types
* refactor(channels): reuse setup adapter type
* refactor(discord): share model preference primitives
* refactor(whatsapp): share reaction eligibility
* test(auto-reply): deduplicate dispatch scenarios
* test(scripts): share scenario fixtures
* test: share process and registry fixtures
* test: satisfy dedup fixture lint
* fix(plugin-sdk): keep setup adapter contract acyclic
2026-07-25 02:56:05 -07:00
xingzhou
87b424aca8
fix(browser): control results can contain corrupted text from malformed UTF-8 ( #111898 )
...
* fix(browser): reject malformed UTF-8 control responses
* test(browser): cover malformed UTF-8 error responses
* test(browser): strengthen UTF-8 transport coverage
* fix(browser): preserve retry guidance on decode errors
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-25 02:30:36 -07:00
Peter Steinberger
c94746c924
fix: restore plugin bindings and macOS test stability ( #113588 )
...
* test(plugin-sdk): canonicalize memory fixture roots
* fix(channels): resolve plugin binding agent scope
* chore: defer release-owned changelog
* test(agents): retry session store fixture cleanup
* test(discord): cover configured plugin binding agent
2026-07-25 02:30:24 -07:00
Peter Steinberger
446816f751
test: table-drive followup scenarios, centralize sanitizer wiring, remove obsolete negatives ( #113583 )
...
* test(auto-reply): table-drive followup runner scenarios
* test(channels): centralize sanitizer wiring coverage
* test: remove obsolete negative coverage
2026-07-25 02:14:44 -07:00
Vincent Koc
21667ef33c
refactor(telegram): reuse shared error coercion ( #113589 )
2026-07-25 17:10:51 +08:00
Peter Steinberger
aba0b12014
refactor(browser): split Playwright session manager ( #113585 )
2026-07-25 01:58:10 -07:00
Vincent Koc
e4d6170237
refactor(matrix): reuse shared error coercion ( #113586 )
2026-07-25 16:54:55 +08:00
Peter Steinberger
48ab15851b
test: consolidate Slack and QMD matrices ( #113574 )
2026-07-25 01:53:49 -07:00
Ben Badejo
c61111ba93
fix(matrix): gateway startup stalls after repeated token rotation ( #113489 )
...
* fix(matrix): avoid scanning settled storage roots
* test(matrix): prove unsettled root fallback
---------
Co-authored-by: Benjamin Badejo <ben@benbadejo.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-25 01:52:41 -07:00
Peter Steinberger
c5a2e9b9fb
test(google-meet): deduplicate browser scenarios ( #113573 )
2026-07-25 01:51:07 -07:00
Vincent Koc
7f36147bda
refactor(slack): reuse shared error coercion ( #113581 )
2026-07-25 16:41:46 +08:00
Vincent Koc
3af03aee6c
refactor(approvals): share native target resolvers ( #113568 )
2026-07-25 16:23:14 +08:00
Peter Steinberger
6e604438b6
test(markdown): lock straggler output contracts ( #113543 )
2026-07-25 01:12:30 -07:00
Peter Steinberger
d2b6573690
refactor(channels): remove v2026.7.2-gated compat (flat streaming keys, group intro hint) ( #113533 )
...
* refactor(channels): remove flat streaming compat
maintainer-approved early removal of v2026.7.2-gated compat
* refactor(channels): remove group intro hint adapter
maintainer-approved early removal of v2026.7.2-gated compat
Plugin SDK surface baseline update is maintainer-approved for this intentional removal.
2026-07-25 01:09:25 -07:00
Peter Steinberger
2942678214
refactor(memory): split retained state migrations ( #113542 )
2026-07-25 01:03:35 -07:00
Peter Steinberger
a5d758e74b
refactor(plugin-sdk): share channel DM policy setup ( #113537 )
2026-07-25 01:00:53 -07:00
Peter Steinberger
9e9615d7c1
refactor(codex): prune migration pipeline ( #113536 )
2026-07-25 00:58:11 -07:00
Peter Steinberger
3018e8b78a
refactor: deduplicate micro helpers onto canonical homes ( #113534 )
...
* refactor: deduplicate micro helpers
* fix(ai): keep hash prefix helper internal
2026-07-25 00:41:01 -07:00
Vincent Koc
749dbcb2a7
refactor(media): consolidate generated media byte limits ( #113556 )
2026-07-25 15:39:49 +08:00
Peter Steinberger
4f1b5da9d8
refactor(codex): split app-server config ( #113552 )
...
* refactor(codex): split app-server config
* refactor(codex): keep config helper types private
2026-07-25 00:36:50 -07:00
Peter Steinberger
92a35b599a
refactor: share channel probe runner ( #113540 )
2026-07-25 00:24:31 -07:00
Peter Steinberger
e87b3cea18
refactor(plugin-sdk): share doctor key-move builder ( #113539 )
2026-07-25 00:21:15 -07:00
Peter Steinberger
0881c7d27b
refactor: share feishu docx/broadcast and telegram send bookkeeping ( #113541 )
...
* refactor(feishu): deduplicate docx insertion stages
* refactor(feishu): share broadcast inbound adapter
* refactor(telegram): share outbound send bookkeeping
2026-07-25 00:18:28 -07:00
Vincent Koc
f6d456235c
refactor(signal): reuse shared error coercion ( #113544 )
2026-07-25 15:03:40 +08:00
Vincent Koc
7176dcf314
refactor(anthropic-vertex): share catalog runtime ( #113528 )
2026-07-25 14:54:05 +08:00
Peter Steinberger
82d1a03f25
refactor(agents): move implicit-main fallback into load-time roster injection ( #112678 )
...
* refactor(agents): require explicit roster defaults
* feat(onboard): create named first roster agent
* refactor(agents): remove runtime main fallbacks
* style(agents): apply roster refactor formatting
* refactor(agents): finish roster-only runtime sweep
* fix(doctor): migrate legacy main session sqlite
* fix(doctor): harden roster session migrations
* fix(onboard): commit first agent atomically
* fix(config): support empty-roster analysis
* fix(agents): preserve legacy main state during creation
* fix(setup): materialize baseline agent roster
* fix(agents): harden legacy default transfer recovery
* fix(agents): simplify roster-only legacy compatibility
* fix(agents): preserve staged first-agent entries
* fix(config): migrate persisted implicit-main rosters
* fix(config): preserve staged empty rosters
* fix(agents): finalize roster-only upgrade paths
* fix(sessions): close legacy main migration outcomes
* fix(config): migrate legacy roster markers at load
* fix(sessions): preserve roster upgrade history
* refactor(sessions): restore lean legacy main compatibility
* fix(setup): prepare first-agent credentials before publish
* fix(config): stabilize roster snapshot migration
* refactor(sessions): shrink legacy main compatibility
* fix(agents): restore roster compatibility fidelity
* fix(sessions): preserve divergent legacy history
* refactor(agents): narrow roster-only scope
* fix(config): isolate roster migration
* test(agents): align roster-only fixtures
* fix(agents): keep main agent undeletable
* fix(agents): harden roster migration invariants
* fix(agents): close setup and audit scope gaps
* fix(cron): scope session reaper throttles by agent
* fix(agents): preserve scoped owner precedence
* fix(config): preserve authored config ownership
* fix(setup): keep default workspace and roster in sync
* fix(setup): preserve default entry workspace on bare runs
* fix(agents): adapt roster rebase to keyed entries
* fix(agents): honor both roster representations
* fix(agents): route roster reads through shared helpers
* fix(config): preserve canonical roster writes
* fix(cron): resolve dynamic default for session reaper
* fix(agents): close dynamic default migration gaps
* fix(agents): align scoped session ownership
* fix(sessions): preserve legacy main directory casing
* fix(agents): align cron and legacy auth ownership
* fix(setup): provision the committed default workspace
* fix(cron): align scoped ownership and reaping
* fix(cron): treat blank agent ids as absent
* fix(cron): retain configured session-store owners
* fix(agents): repair roster-aware CI boundaries
* fix(cron): preserve scoped ownership resolution
* fix(agents): preserve rosterless maintenance paths
* fix(agents): propagate roster ownership through runtime boundaries
* fix(agents): preserve roster ownership across runtime paths
* fix(agents): harden roster diagnostics and legacy routing
* fix(agents): remove redundant diagnostic import
* test(agents): type CLI policy fixture explicitly
* fix(config): preserve canonical roster mutation identity
* fix(doctor): read canonical agent rosters consistently
* fix(config): resolve compound roster unsets safely
* fix(config): finalize main-session reconciliation
* fix(doctor): read canonical session state safely
* fix(sessions): preserve current visibility alias
* fix(config): track roster include provenance
* test(config): type roster provenance cases
* fix(config): refine roster include ownership
* fix(agents): preserve staged roster invariants
* test(config): align fixtures with explicit roster ownership
* test(node-host): preserve optional plan typing
* fix(config): preserve authored roster projections
* test(config): keep raw roster fixtures explicit
* test(config): normalize rosters at runtime fixtures
* fix(config): protect authored roster ownership
* fix(agents): require explicit session ownership
* fix(agents): enforce scoped roster ownership
* fix(sessions): merge fixed-store agent partitions
* fix(agents): harden roster ownership boundaries
* fix(config): reject ambiguous roster projections
* fix(sessions): preserve persisted store ownership
* fix(sessions): keep collision diagnostics additive
* fix(security): scan malformed roster workspaces
* test(config): align snapshot fixtures after rebase
* test(agents): use explicit roster fixtures
* fix(config): harden roster diagnostic boundaries
* fix(sessions): isolate fixed-store agent databases
* test(agents): type malformed default markers
* refactor(sessions): extract store collision resolution
* test(system-agent): split oversized setup coverage
* style(system-agent): format split setup suite
* fix(sessions): preserve promoted store ownership
* fix(sessions): derive scoped owner before target
* fix(sessions): preserve explicit sqlite ownership
* fix(agents): restore roster compatibility across CI
* fix(agents): enforce roster-owned runtime boundaries
* fix(agents): satisfy default lookup lint
* test(sessions): split known-owner coverage
* fix(state): satisfy path identity lint
* fix(agents): preserve malformed roster safety boundaries
* fix(agents): restore roster compatibility at runtime boundaries
* fix(config): satisfy roster boundary type checks
* fix(agents): preserve roster ownership across runtime probes
Setup inference probes now execute as the configured roster owner. Malformed agent-prefixed session rows are intentionally omitted by the fail-closed visibility contract rather than normalized by tests.
* fix(agents): satisfy session list owner lint
* fix(agents): preserve roster-owned runtime boundaries
Restore shared logical rows for exact SQLite session locators while keeping their physical database owner separate. The ownership regression test now constructs an explicit sole-owner database directly instead of relying on first-touch capture, matching the intentional shared-store contract.
* fix(sessions): preserve multiply owned exact stores
* fix(sessions): restore runtime owner boundaries
Keep incognito sentinels agent-owned, fold default-agent approvals into the global snapshot, and preserve the configless legacy-main CLI policy fallback. Also repair the existing CLI watchdog test lifecycle so the compact shard observes its timeout without an unawaited assertion or async timer stall; product behavior is unchanged by that test-only fix.
* test(ci): align owner-scoped fixtures
These assertions are unchanged. The fixtures now declare the intended non-default runner, expose the session-key constant imported by production status code, and select the main approvals bucket explicitly on Windows.
* fix(agents): close final roster ownership gaps
2026-07-24 22:38:09 -07:00
Peter Steinberger
b82d8e56b6
fix(qa): require persisted results in runtime parity ( #113499 )
...
* fix(qa): bind runtime parity to fixture session
* fix(qa): narrow session store reader input
* test(qa): isolate runtime session selection regression
* fix(ci): restore env surface ratchet
2026-07-24 21:52:53 -07:00
Vincent Koc
c780bfbf0d
fix(qa): retain runtime tool evidence after agent completion ( #113484 )
...
Wait for durable transcript evidence before runtime parity capture and scope capture to the fixture-owned sessions.
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-25 12:03:49 +08:00
Peter Steinberger
2a5ad61ce9
feat(system-agent): constrain planner JSON output at generation time ( #113482 )
...
* feat(system-agent): constrain planner JSON output
* fix(ai): align response format request typing
* fix(ai): preserve response format backend contracts
2026-07-24 21:00:28 -07:00
Peter Steinberger
d6971f46ca
fix: make filesystem publication crash-durable ( #113453 )
...
* fix(fs): centralize directory durability
* chore: keep release notes in PR body
* test(sqlite): canonicalize read-only race paths
* test(fs): clean durability fixtures
* chore(lint): prune sqlite snapshot baseline
* fix(backup): reject unsupported commit sync
* fix(fs): enforce strict durability outcomes
* refactor(tls): flatten preserved-output failures
* fix(reef): require durable journal commits
* fix(fs): route durability through policy boundaries
* fix(reef): preserve Windows journal compatibility
* fix(fs): bind publication to canonical directories
* fix(ci): align durability boundary fixtures
2026-07-24 20:58:17 -07:00
Vincent Koc
d4a90c7bbb
fix(qa): capture multi-session runtime tools ( #113461 )
2026-07-25 10:17:17 +08:00
Peter Steinberger
ab04b2103e
test(workboard): mock sqlite runtime opener ( #113457 )
2026-07-24 18:07:38 -07:00
joshavant
66a75bb9e5
fix(channels): unify routed outbound hook ownership
2026-07-24 20:05:30 -05:00
Vincent Koc
4e51e7adda
fix(qa): capture trajectory-only runtime tools ( #113452 )
2026-07-25 08:44:45 +08:00
joshavant
877ae06c10
fix(qa): allow gateway graceful shutdown
2026-07-24 19:05:03 -05:00
Jason (Json)
872ba27ff3
docs(anthropic): document the rolling opus alias and pin alias-split coverage ( #113413 )
...
Main already resolves bare opus to Claude Opus 5 but documents nothing about
the rolling behavior. State that bare family aliases follow the current
generation and that pinning is the opt-out, and add regression coverage
separating bare aliases, pinned aliases, and retired-ref upgrades.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-24 17:14:49 -06:00