Peter Steinberger
458746e1c2
chore(ci): enforce changed-file TypeScript LOC ratchet ( #106387 )
...
* ci: enforce changed-file TypeScript LOC ratchet
* ci: derive release-gate LOC base from PR
* test(ci): exclude repository test helpers from LOC ratchet
* ci: validate LOC ratchet on PR merge tree
* style: format release maintainer skill
* ci: run LOC ratchet for fast-only changes
* fix(ci): harden LOC ratchet comparisons
* fix(ci): cover native TypeScript in LOC ratchet
* fix(ci): compare LOC against tested merge tree
* test(ci): cover LOC manifest routing
2026-07-13 07:20:32 -07:00
Peter Steinberger
0bab08510e
feat: Linux desktop companion app with auto-install, Gateway lifecycle, and Control UI window ( #106352 )
...
* feat(linux): add Tauri desktop companion app and openclaw dashboard --json
* test(dashboard): assemble fake token fixture to satisfy secret scanners
* test(dashboard): avoid secret-scanner-shaped mock factory line
* fix(linux): actionable error when installed CLI predates dashboard --json
* docs: regenerate docs map for linux platform heading change
2026-07-13 05:17:27 -07:00
Peter Steinberger
4b6575636f
fix(ci): finalize control UI locale artifacts
2026-07-13 12:12:51 +01:00
Peter Steinberger
e2ed58efec
fix(ci): publish native generated locales
2026-07-13 11:41:15 +01:00
Peter Steinberger
d38fc3e2f0
fix(ci): keep Periphery scope checks off shared API quota ( #106090 )
...
* fix(ci): avoid API quota in Periphery scope checks
* fix(ci): preserve Periphery scope contracts
2026-07-13 01:47:43 -07:00
Peter Steinberger
b1ce84b079
ci: reduce Blacksmith registrations for pull requests ( #106146 )
2026-07-13 01:32:25 -07:00
Peter Steinberger
0ab7e2569b
fix(ci): preserve pinned manual checkout
2026-07-13 03:42:26 -04:00
Peter Steinberger
afdc29c3dd
fix(ci): reduce release validation polling load ( #106139 )
...
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-13 15:32:27 +08:00
Jason (Json)
3375e30d9c
chore(ci): remove TypeScript LOC ratchet ( #106096 )
...
Remove the hard 500-line TypeScript LOC ratchet from CI and local check planning, along with its package commands, implementation, baseline, and dedicated tests. Keep the remaining pull-request temp-creation report on its own pr-base fetch.\n\nVerification: 99 focused tooling tests; actionlint; zizmor; workflow guards; exact-head autoreview.
2026-07-13 00:15:00 -06:00
Peter Steinberger
aa04722c5c
fix(ci): make TypeScript LOC growth reviewable ( #105952 )
2026-07-12 23:06:30 -07:00
Vincent Koc
f33ab243cf
fix(sqlite): reject runtimes vulnerable to WAL corruption ( #106065 )
...
* fix(sqlite): require WAL-reset-safe Node runtime
* docs(sqlite): document safe Node runtime floor
* fix(sqlite): defer runtime library validation until use
* fix(ci): align startup memory with Node 24.15
2026-07-13 13:59:00 +08:00
Vincent Koc
6a0eecdb44
fix(release): separate code and release SHA validation ( #105948 )
2026-07-13 13:38:19 +08:00
Peter Steinberger
dce8eed0b9
ci(deadcode): restore enforced unused-export ratchet ( #105826 )
...
* ci(deadcode): restore export ratchet
* chore(deadcode): refresh export baseline
* refactor(sessions): remove obsolete patch writer
* refactor(deadcode): classify current export residue
* fix(deadcode): preserve exported signature types
* chore(deadcode): sync export baseline after rebase
* chore(deadcode): classify pairing test exports
* fix(ci): refresh plugin SDK declaration budget
2026-07-12 19:58:38 -07:00
Peter Steinberger
c3dbaf4375
refactor: split hot TypeScript modules and add LOC ratchet ( #105894 )
...
* refactor: split high-churn agent and chat modules
* ci: enforce TypeScript LOC ratchet
* ci: anchor LOC baseline updates to merge base
* test: cover LOC ratchet check plans
* chore: refresh TypeScript LOC baseline
2026-07-12 19:57:42 -07:00
Peter Steinberger
e01d1e85f3
ci(swift): enforce shared OpenClawKit dead-code coverage ( #105770 )
...
* ci(swift): enforce shared kit dead-code coverage
* chore(i18n): sync native source inventory
* ci(swift): install pinned iOS scan tools
2026-07-12 17:35:47 -07:00
Vincent Koc
37807242c9
fix(release): pin publish workflow refs ( #105773 )
2026-07-13 08:15:35 +08:00
Vincent Koc
13212f1a4d
fix(release): accept canonical plugin package identities ( #105746 )
2026-07-13 07:45:31 +08:00
Peter Steinberger
2264816f1d
ci(macos): add enforced periphery dead-code lane and delete the 12 current findings ( #105743 )
...
* refactor(macos): delete dead code flagged by periphery
* ci(macos): add enforced periphery dead-code lane
* fix(ci): scope-label the periphery skip message
* chore(i18n): sync native inventory line coordinates
2026-07-12 16:39:15 -07:00
Vincent Koc
55f438e295
fix(release): handle empty ClawHub bootstrap plan ( #105722 )
...
* fix(release): handle empty ClawHub bootstrap plan
* fix(release): handle empty ClawHub bootstrap plan
2026-07-13 06:55:23 +08:00
Vincent Koc
2c06dfdd2f
fix(ci): keep unused exports advisory ( #105704 )
...
* fix(ci): preserve frozen deadcode contracts
* fix(ci): keep unused exports advisory
2026-07-13 05:47:05 +08:00
Vincent Koc
bf81e589ac
fix(ci): bound Telegram gateway diagnostics ( #105645 )
2026-07-12 22:02:22 +02:00
Peter Steinberger
67d7bf1037
ci(release): deduplicate Telegram routing proofs ( #105613 )
2026-07-12 21:07:24 +02:00
Peter Steinberger
a425807c31
ci(deadcode): replace broken export report lanes with enforced knip exports ratchet ( #105595 )
...
* chore(deadcode): add generated knip unused-export baseline
* ci(deadcode): replace broken export report lanes with enforced knip exports ratchet
* chore(deadcode): regenerate unused-export baseline on current main
* chore(deadcode): regenerate unused-export baseline on current main
2026-07-12 11:36:42 -07:00
Peter Steinberger
1634d849c7
fix(ci): allow empty success diagnostics ( #105569 )
...
* fix(ci): allow empty success diagnostics
* docs(agents): guard non-main PR landing
2026-07-12 18:57:42 +01:00
Peter Steinberger
d5fd7ad6ff
ci(release): parallelize runtime parity tiers ( #105545 )
2026-07-12 18:23:41 +01:00
Peter Steinberger
7c5b66a1e4
fix(ci): wait for Telegram credential capacity ( #105535 )
...
* fix(ci): wait for Telegram credential capacity
* test(ci): align Telegram credential wait contract
2026-07-12 18:19:13 +01:00
Peter Steinberger
c41326e320
fix(ci): retain safe Telegram trace milestones ( #105521 )
2026-07-12 17:37:14 +01:00
Peter Steinberger
7517a62386
fix(ci): capture live Telegram model proof ( #105499 )
2026-07-12 16:47:40 +01:00
Peter Steinberger
eaedcdcd4e
fix(ci): retain Telegram candidate diagnostics ( #105472 )
...
* fix(ci): retain Telegram candidate diagnostics
* fix(ci): stream redacted Telegram diagnostics
2026-07-12 16:10:41 +01:00
Peter Steinberger
eb9bd4e457
fix(ci): retain failed Telegram QA evidence ( #105367 )
...
* fix(ci): retain failed Telegram QA evidence
* docs(agents): clarify gh jq boundary
* docs(agents): require full checkout SHAs
* docs(agents): quote zsh Git object refs
2026-07-12 14:09:07 +01:00
Peter Steinberger
42d34eb4c8
fix(ci): pass Telegram target ref to identity gate ( #105362 )
2026-07-12 13:32:27 +01:00
Peter Steinberger
b1fcd7c178
fix(ci): keep LTS Telegram QA model compatible ( #105348 )
...
* fix(ci): keep LTS Telegram QA model compatible
* fix(ci): probe Telegram QA model contract
* style(ci): format Telegram QA contract test
* docs(agents): note review checkout order
* docs(agents): clarify rg option order
2026-07-12 13:18:37 +01:00
Peter Steinberger
22f183f8cb
ci: isolate legacy QA smoke invocations ( #105340 )
...
* ci: isolate legacy QA smoke invocations
* docs(agents): record PR review recommendation
2026-07-12 12:52:31 +01:00
Vincent Koc
1389d7ee88
ci(performance): restore proven Kova evaluator ( #105314 )
2026-07-12 13:35:59 +02:00
Peter Steinberger
e864155d74
ci(performance): accept disabled gateway health proof ( #105324 )
2026-07-12 12:22:13 +01:00
Peter Steinberger
eb2669cefd
ci(performance): accept optional Kova cleanup evidence ( #105292 )
2026-07-12 11:53:09 +01:00
Peter Steinberger
a20314d6cc
ci: preserve frozen Android build contract ( #105299 )
2026-07-12 11:48:02 +01:00
Peter Steinberger
7bb59c4511
ci: pin release validation Go toolchain ( #105270 )
2026-07-12 11:02:04 +01:00
Peter Steinberger
265ca345a1
ci: pin frozen iOS formatter ( #105242 )
...
* ci: pin frozen iOS formatter
* docs: clarify release CI dispatch
* ci: preserve frozen iOS formatter path
* style: format CI workflow guard
2026-07-12 10:49:26 +01:00
Peter Steinberger
4efe056d32
fix(ci): stop Telegram release checks from fetching history ( #105219 )
...
* fix(ci): bound Telegram provenance lookups
* docs(agents): note linked worktree invocations
2026-07-12 10:18:39 +01:00
Peter Steinberger
d79373fa14
ci: bound legacy QA smoke compatibility ( #105213 )
2026-07-12 10:15:33 +01:00
Peter Steinberger
acc57e4145
ci: isolate frozen Control UI tests ( #105208 )
2026-07-12 10:06:23 +01:00
Peter Steinberger
f84b6f6091
test(release): harden shared UI and performance proof ( #105061 )
...
* ci(perf): pin PID-aware Kova evaluator
* test(ui): follow localized automation labels
* ci(perf): pin compatible Kova runner
* test(ui): bound chat hover browser wait
* docs(agents): require release validation helper
* ci(perf): retain redacted Kova reports
* style(ui): format chat hover test
* docs(agents): avoid dependency scripts in PR worktrees
* docs(agents): guard shared checkout branches
* docs(agents): quote gh api query endpoints
2026-07-12 09:55:21 +01:00
Peter Steinberger
91ca35ba58
ci: make locale parity advisory before release ( #105140 )
2026-07-12 09:11:57 +01:00
Vincent Koc
ac69e5008c
fix(ci): avoid stale workflow rate limits ( #105117 )
...
* fix(ci): throttle stale issue locking
* fix(ci): throttle stale issue locking
2026-07-12 16:03:24 +08:00
Vincent Koc
efdce6754d
fix(ci): align scheduled e2e checks with sqlite sessions
2026-07-12 15:22:37 +08:00
Peter Steinberger
096cb91175
feat(tooling): enforce noUncheckedIndexedAccess in core and ui lanes (NUIA phase 3c) ( #104981 )
...
* fix(ui): make indexed access explicit across the Control UI
Burns down all 322 ui-lane noUncheckedIndexedAccess errors: untrusted
markdown/diff/patch parsing gets miss-tolerant guards (renderer rules
degrade to empty output instead of throwing mid-render), accumulators
use canonical sparse initialization, DOM lookups stay null-guarded, and
length-checked constructions carry named invariants.
* feat(tooling): enforce noUncheckedIndexedAccess in the core and ui lanes
Flips the flag on for tsconfig.core.json and tsconfig.ui.json (covering
src, all packages including the two deferred ones, and ui) and retires
the strict-ratchet lane wholesale: config, script, projects reference,
check/CI wiring, changed-lane routing, and sync test. The assertion-ban
oxlint override stays as an independent surface.
2026-07-12 06:36:36 +01:00
Peter Steinberger
176647aa84
ci: gate frozen QA smoke by capability ( #105006 )
2026-07-12 06:32:26 +01:00
Peter Steinberger
b163dbb97d
ci: harden current and frozen release checks ( #104956 )
...
* test(qa): wait for complete process pid fixture
* style(qa): format pid readiness predicate
* test(sqlite): allow schema version pragma
* ci: install target playwright for frozen UI checks
2026-07-11 22:08:49 -07:00
Peter Steinberger
5b29c37137
ci: accept trusted unsigned release merge heads ( #104838 )
2026-07-11 20:42:03 -07:00