Commit Graph

17083 Commits

Author SHA1 Message Date
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