Peter Steinberger
4859d524ed
refactor(tasks): classify harness-owned subagent rows without plugin ids ( #113964 )
...
* refactor(tasks): classify harness-owned subagent rows without plugin ids
* refactor(plugin-sdk): require taskKind for harness-owned subagent runtimes
* docs(tasks): record harness-ownership invariant at the predicate
* test(plugin-sdk): declare harness task kind in scope fixtures
2026-07-25 18:41:13 -07:00
Peter Steinberger
4596fd2dd2
feat(ci): weekly Codex sweep for date-carrying to-dos ( #113914 )
...
* feat(ci): weekly Codex sweep for date-carrying to-dos
Mondays 06:23 UTC (plus default-branch-only manual dispatch with
dry_run): a deterministic prefilter collects candidate lines where
to-do markers co-occur with date tokens, plus every deprecated compat
record from the plugin registry; a pinned openai/codex-action step
judges each candidate in context (genuine dated commitment vs
historical date or fixture) and writes an OVERDUE / DUE-30-days /
FUTURE report; a separate privileged job validates the report (tracked
file:line locations, date shape, inert text) and upserts one
marker-tagged tracking issue via the Barnacle app token, commenting
only when items newly become due.
The app token is minted on a fresh runner and checkout — never beside
Codex or its child processes; only the validated report artifact
crosses jobs. No permission-* subsets on token minting (installations
reject explicit subsets; see pr-ci-sweeper).
* chore(ci): localize upsert helpers with no external consumers
2026-07-25 18:18:06 -07:00
Peter Steinberger
71c654c72d
fix(release): install package validation dependencies ( #113907 )
...
* fix(release): install package validation dependencies
* fix(release): isolate artifact validation tooling
2026-07-25 16:29:20 -07:00
ClawSweeper
7550f2edc9
fix(ui): keep chat table labels readable and summaries separated ( #113865 )
...
* fix(ui): improve chat markdown table layout
* test(package): restore Control UI fixture dependencies
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-25 14:35:15 -07:00
Peter Steinberger
508a29b433
test(package): bundle offline Control UI fixture runtime ( #113871 )
2026-07-25 14:30:40 -07:00
Peter Steinberger
d5a3740707
fix(package): prevent installs from deleting required runtime modules ( #113821 )
...
* fix(package): preserve imported runtime chunks after install
* fix(package): isolate public build from private QA
* test(package): prove installed postinstall dependency graph
2026-07-25 14:05:41 -07:00
Peter Steinberger
7490560c67
fix(package): prevent installs from deleting the Control UI ( #113856 )
2026-07-25 14:03:32 -07:00
Peter Steinberger
a18c314377
fix(install): preserve shared Node compile caches ( #113837 )
2026-07-25 13:17:58 -07:00
Peter Steinberger
502d1cf56b
refactor(browser): split Playwright interaction tools ( #113771 )
...
* refactor(browser): split Playwright interactions
* test(browser): track split lint suppressions
* refactor(browser): inline interaction timeout resolver
2026-07-25 12:17:43 -07:00
Peter Steinberger
bde7033ac4
feat(models): dynamic model catalogs via hosted refresh overlay ( #113660 )
...
* feat(models): add remote catalog core
* feat(config): add model catalog refresh settings
* feat(models): wire remote catalog refresh
* ci(models): publish hosted catalog
* docs(models): document catalog refresh
* test(models): allow catalog count growth
* refactor(models): preserve safe catalog merge
* ci(models): publish catalog through GitHub
* docs(models): link public catalog history
* fix(model-catalog): enforce Kysely store access
* fix(model-catalog): trim unused catalog exports
* docs(models): refresh generated docs map
2026-07-25 12:15:05 -07:00
Peter Steinberger
fdb511f5a1
fix(ci): repair beta performance and mention gates ( #113795 )
2026-07-25 11:56:00 -07:00
Peter Steinberger
be95b78ae6
fix(release): handle large preparation diffs ( #113760 )
2026-07-25 10:15:47 -07:00
Peter Steinberger
f1538c6d6c
fix(release): validate complete package sets in candidate smoke ( #113600 )
...
* fix(release): pass only root dependencies to candidate smoke
* fix(release): stage plugin candidates for Parallels
* fix(release): bind plugin preflight package identity
* fix(test): stream upstream npm tarballs
* fix(test): retry post-update gateway startup
* fix(test): install fresh candidates through registry
* fix(test): route fresh candidates through registry
* test(release): update Parallels source contracts
* fix(test): split host and guest registry URLs
2026-07-25 07:59:06 -07:00
Vincent Koc
a4d367e38c
fix(crabbox): keep untrusted bootstrap pnpm pin current ( #113728 )
2026-07-25 22:46:10 +08:00
sunlit-deng
7d7bfb2047
fix(scripts): bound release metadata git lookups ( #112556 )
...
* fix(scripts): bound release metadata git lookups
* fix(scripts): keep fractional git timeouts bounded
* test(scripts): gate fake git shim to Unix
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-25 07:12:27 -07:00
Vincent Koc
687923189e
fix(sqlite): make reliability proofs cross-platform safe ( #113652 )
...
* test(sqlite): canonicalize reliability crash barriers
* fix(sqlite): normalize reliability database paths
* test(sqlite): allow Windows reliability proof to finish
2026-07-25 21:50:27 +08:00
Peter Steinberger
1dcb35b204
refactor(agents): split main session recovery ( #113687 )
2026-07-25 13:39:15 +00:00
Peter Steinberger
d4c5b673f3
test(scripts): slim workflow guard monoliths ( #113650 )
...
* test: slim package acceptance workflow guards
* test: drop disabled CI timing guard
* test: consolidate Docker workflow guards
* test(scripts): align plugin sweep guard with lifecycle tracing
* test(scripts): restore release wiring contracts
2026-07-25 06:27:19 -07:00
ooiuuii
ceeb861418
fix(install): report source UI build failures correctly ( #112053 )
2026-07-25 05:42:23 -07:00
ooiuuii
591e029095
fix(browser): skip non-executable auto-discovery candidates ( #111951 )
...
* fix(browser): skip non-executable candidates
* test(browser): preserve fs constants in mocks
* fix(browser): simplify executable candidate checks
* fix(browser): require regular executable files
* style(browser): format executable candidates
* test(ci): allow sqlite proof on fork runners
* style(test): keep sqlite timeout diff compact
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-25 04:50:40 -07:00
Peter Steinberger
eddd5224ad
fix(e2e): expose redacted packaged plugin failures ( #113635 )
...
Co-authored-by: Peter Steinberger <steipete@golden-gate.local >
2026-07-25 04:48:08 -07:00
Dallin Romney
26b7bb822b
fix(ci): validate frozen release candidates with compatible harnesses ( #113628 )
...
* fix(ci): keep release harnesses compatible with frozen candidates
* style: format release Telegram workflow test
2026-07-25 04:45:29 -07:00
Peter Steinberger
825d6f7f1f
fix(openai): align Codex discovery client version ( #113615 )
...
* fix(openai): align Codex discovery client version
* chore: leave release notes to release workflow
2026-07-25 04:33:12 -07:00
Vincent Koc
d4794c90a0
test(sqlite): cover interrupted canonical index repair ( #113624 )
2026-07-25 19:27:17 +08:00
Peter Steinberger
57e2f220de
fix(ci): restore packaged OpenWebUI and update validation ( #113614 )
...
Co-authored-by: Peter Steinberger <steipete@golden-gate.local >
2026-07-25 04:14:41 -07:00
sallyom
f045f33a62
feat(onepassword): add managed SecretRef integration
2026-07-25 06:03:30 -05:00
Vincent Koc
2b19ae1f00
fix(snapshot): recover complete pending sqlite snapshots ( #113607 )
2026-07-25 18:50:50 +08: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
Peter Steinberger
55d66fbf98
chore(scripts): remove resolved investigation tools and orphans ( #113532 )
...
* chore(scripts): remove orphaned wrappers
* chore(scripts): remove resolved investigation tools
* refactor(code-mode): remove orphaned plugin namespaces
* test(code-mode): remove stale namespace import
2026-07-25 02:47:40 -07:00
Vincent Koc
7a5c47db8e
test(sqlite): prove repository interruption recovery ( #113555 )
2026-07-25 15:37:16 +08:00
Vincent Koc
6734b132f1
test(sqlite): prove restore interruption recovery ( #113531 )
2026-07-25 15:16:51 +08:00
Vincent Koc
bdd5653c3e
test(sqlite): prove killed vacuum recovery ( #113518 )
2026-07-25 13:56:41 +08:00
Vincent Koc
5f63f744ea
test(sqlite): prove publication interruption recovery ( #113512 )
2026-07-25 13:09:32 +08:00
Vincent Koc
92f01470d4
test(sqlite): crash writers during reliability proof ( #113498 )
2026-07-25 12:44:29 +08:00
Vincent Koc
509a5f0373
fix(sqlite): reject schema data loss during upgrades ( #113473 )
...
* fix(sqlite): reject schema data loss during upgrades
* test(macos): align native state schema boundary
2026-07-25 12:22:02 +08:00
joshavant
592be7b407
style: format installer validation tests
2026-07-24 17:22:07 -05:00
joshavant
09c26e24eb
fix(installer): harden managed script downloads
2026-07-24 17:22:07 -05:00
Sebastien Tardif
34cc32fa41
fix(test): mock download/validate for Debian NodeSource install path
...
install_node now calls validate_downloaded_script after the NodeSource
download step. The Debian pacman-ignore harness did not mock those
helpers, so empty mktemp files failed closed and status was 1.
Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca >
2026-07-24 17:22:07 -05:00
Sebastien Tardif
20c9c6b1f9
fix(test): mock validate_downloaded_script in NodeSource failure tests
...
The rebase onto main introduced validate_downloaded_script between
download_file and run_required_step. Since the test mocks
run_quiet_step (which swallows the actual download_file call), the
temp file stays empty and validate_downloaded_script fails early,
preventing the test from reaching the intended run_required_step
failure path.
2026-07-24 17:22:07 -05:00
Peter Steinberger
5bea268128
feat(anthropic): complete Claude Opus 5 rollout ( #113392 )
...
* feat(models): add Claude Opus 5 support
* test(models): align Opus 5 setup fixtures
* test(models): update ambient Opus 5 detection
* fix(models): reconcile Opus 5 support with main
2026-07-24 14:55:36 -07:00
Peter Steinberger
14df16007f
fix(ci): log every pr-ci-sweeper classification and scan by creation time ( #113397 )
2026-07-24 13:33:16 -07:00
Peter Steinberger
4e9cba2aba
fix(release): scope dependency conflicts to bundled plugins ( #113350 )
2026-07-24 08:08:55 -07:00
Peter Steinberger
7dfb660d1f
fix(release): keep msteams packaging and Docker reruns reliable ( #113332 )
...
* fix(release): forward-port beta packaging repairs
* fix(ci): acknowledge sweeper token grant
2026-07-24 07:05:41 -07:00
Vincent Koc
a18e8fbe0c
refactor(tooling): centralize positive env integers ( #113277 )
2026-07-24 16:23:35 +08:00
Peter Steinberger
f3c4b120e2
fix(tooling): prevent silent test filters and local dependency reconciliation ( #113236 )
...
* fix(tooling): harden changed checks and test filters
* test(tooling): align temp report with helper lanes
2026-07-24 00:55:52 -07:00
Vincent Koc
6dbe278283
fix(android): allow post-merge flavor translations
2026-07-24 15:26:58 +08:00
Vincent Koc
342816a58d
fix(i18n): publish Android flavor locale artifacts
2026-07-24 15:26:58 +08:00
Vincent Koc
4990ac3aa9
fix(i18n): cover Android flavor surfaces
2026-07-24 15:26:58 +08:00
joshavant
bd559a98ed
fix(cron): migrate scheduled authority provenance
2026-07-24 01:24:03 -05:00
Peter Steinberger
80449f9a8f
refactor(scripts): retire the STALE-CANCELLED watcher verdict ( #113242 )
...
Run-identity supersession (#113230 ) resolves the scenario this heuristic
softened: superseded runs and rerun-attempt leftovers are filtered before
classification, so aggregate-FAILURE-with-green-duplicates now classifies
as GREEN or PENDING on evidence. The only remaining reachable case —
identity-less app check runs posting duplicate same-name results — is
genuinely ambiguous and now honestly exits FAILING (15) instead of the
special verify-manually exit 17.
2026-07-23 23:11:41 -07:00