Peter Steinberger
ed28c57e20
fix(codex): validate maintained app-server types ( #101726 )
...
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-07 15:48:08 +01:00
Kevin Lin
72ca911e3c
fix(release): allow SHA-only extended-stable preflight ( #101466 )
2026-07-07 07:45:55 -07:00
Peter Steinberger
b95b9e4487
test: remove stale native i18n sentinel ( #101689 )
2026-07-07 14:32:49 +01:00
Vincent Koc
b9a3db13f1
test(e2e): parse corrupt plugin timeouts as decimal
2026-07-07 12:03:11 +02:00
Vincent Koc
a9c0592831
test(e2e): align corrupt plugin update timeout
2026-07-07 12:03:10 +02:00
brokemac79
037412ec7d
ci(mantis): add web UI chat proof lane ( #100472 )
...
* ci(mantis): add web ui chat proof lane
* ci(mantis): tighten web ui proof candidate parsing
* ci: tighten Mantis Web UI proof lane
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-07 10:54:35 +01:00
Peter Steinberger
bc5a82b26d
fix(android): auto-detect the Android SDK when fresh worktrees lack local.properties ( #101273 )
2026-07-07 10:22:07 +01:00
Vincent Koc
202d90041d
test(e2e): authorize doctor install switch repairs
2026-07-07 11:15:05 +02:00
Peter Steinberger
cb9de7d361
chore(android): update dependencies and compile with API 37 ( #101356 )
...
* build(deps): bump the android-deps group across 1 directory with 14 updates
Bumps the android-deps group with 14 updates in the /apps/android directory:
| Package | From | To |
| --- | --- | --- |
| [gradle-wrapper](https://github.com/gradle/gradle ) | `9.5.1` | `9.6.1` |
| androidx.compose:compose-bom | `2026.05.01` | `2026.06.01` |
| androidx.core:core-ktx | `1.18.0` | `1.19.0` |
| androidx.lifecycle:lifecycle-runtime-ktx | `2.10.0` | `2.11.0` |
| [org.commonmark:commonmark](https://github.com/commonmark/commonmark-java ) | `0.28.0` | `0.29.0` |
| [org.commonmark:commonmark-ext-autolink](https://github.com/commonmark/commonmark-java ) | `0.28.0` | `0.29.0` |
| [org.commonmark:commonmark-ext-gfm-strikethrough](https://github.com/commonmark/commonmark-java ) | `0.28.0` | `0.29.0` |
| [org.commonmark:commonmark-ext-gfm-tables](https://github.com/commonmark/commonmark-java ) | `0.28.0` | `0.29.0` |
| [org.commonmark:commonmark-ext-task-list-items](https://github.com/commonmark/commonmark-java ) | `0.28.0` | `0.29.0` |
| [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework ) | `6.1.0` | `6.1.1` |
| [io.kotest:kotest-assertions-core-jvm](https://github.com/kotest/kotest ) | `6.1.11` | `6.2.1` |
| [io.kotest:kotest-runner-junit5-jvm](https://github.com/kotest/kotest ) | `6.1.11` | `6.2.1` |
| [com.squareup.okhttp3:mockwebserver](https://github.com/square/okhttp ) | `5.3.2` | `5.4.0` |
| [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp ) | `5.3.2` | `5.4.0` |
Updates `gradle-wrapper` from 9.5.1 to 9.6.1
- [Release notes](https://github.com/gradle/gradle/releases )
- [Commits](https://github.com/gradle/gradle/compare/v9.5.1...v9.6.1 )
Updates `androidx.compose:compose-bom` from 2026.05.01 to 2026.06.01
Updates `androidx.core:core-ktx` from 1.18.0 to 1.19.0
Updates `androidx.lifecycle:lifecycle-runtime-ktx` from 2.10.0 to 2.11.0
Updates `org.commonmark:commonmark` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-autolink` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-gfm-strikethrough` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-gfm-tables` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-task-list-items` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-autolink` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-gfm-strikethrough` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-gfm-tables` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-task-list-items` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.junit.vintage:junit-vintage-engine` from 6.1.0 to 6.1.1
- [Release notes](https://github.com/junit-team/junit-framework/releases )
- [Commits](https://github.com/junit-team/junit-framework/compare/r6.1.0...r6.1.1 )
Updates `io.kotest:kotest-assertions-core-jvm` from 6.1.11 to 6.2.1
- [Release notes](https://github.com/kotest/kotest/releases )
- [Commits](https://github.com/kotest/kotest/compare/6.1.11...6.2.1 )
Updates `io.kotest:kotest-runner-junit5-jvm` from 6.1.11 to 6.2.1
- [Release notes](https://github.com/kotest/kotest/releases )
- [Commits](https://github.com/kotest/kotest/compare/6.1.11...6.2.1 )
Updates `io.kotest:kotest-runner-junit5-jvm` from 6.1.11 to 6.2.1
- [Release notes](https://github.com/kotest/kotest/releases )
- [Commits](https://github.com/kotest/kotest/compare/6.1.11...6.2.1 )
Updates `com.squareup.okhttp3:mockwebserver` from 5.3.2 to 5.4.0
- [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md )
- [Commits](https://github.com/square/okhttp/compare/parent-5.3.2...parent-5.4.0 )
Updates `com.squareup.okhttp3:okhttp` from 5.3.2 to 5.4.0
- [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md )
- [Commits](https://github.com/square/okhttp/compare/parent-5.3.2...parent-5.4.0 )
Updates `com.squareup.okhttp3:okhttp` from 5.3.2 to 5.4.0
- [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md )
- [Commits](https://github.com/square/okhttp/compare/parent-5.3.2...parent-5.4.0 )
---
updated-dependencies:
- dependency-name: androidx.compose:compose-bom
dependency-version: 2026.06.01
dependency-type: direct:production
dependency-group: android-deps
- dependency-name: androidx.core:core-ktx
dependency-version: 1.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: androidx.lifecycle:lifecycle-runtime-ktx
dependency-version: 2.11.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: com.squareup.okhttp3:mockwebserver
dependency-version: 5.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: com.squareup.okhttp3:okhttp
dependency-version: 5.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: com.squareup.okhttp3:okhttp
dependency-version: 5.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: gradle-wrapper
dependency-version: 9.6.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: io.kotest:kotest-assertions-core-jvm
dependency-version: 6.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: io.kotest:kotest-runner-junit5-jvm
dependency-version: 6.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: io.kotest:kotest-runner-junit5-jvm
dependency-version: 6.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-autolink
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-autolink
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-gfm-strikethrough
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-gfm-strikethrough
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-gfm-tables
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-gfm-tables
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-task-list-items
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-task-list-items
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.junit.vintage:junit-vintage-engine
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: android-deps
...
Signed-off-by: dependabot[bot] <support@github.com >
* build(android): compile dependencies against API 37
* chore(android): refresh native i18n inventory
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-07 08:00:55 +01:00
Peter Steinberger
8c0b3a784a
perf(test): overlap runtime cleanup proofs
2026-07-07 02:47:28 -04:00
Vincent Koc
6e6d1aac4c
test(openai): add focused realtime live smoke
2026-07-06 23:22:33 -07:00
Peter Steinberger
09977a9328
perf(test): overlap restart CLI probes
2026-07-07 02:03:36 -04:00
Peter Steinberger
d69c5ba116
perf(test): overlap process guard waits
2026-07-07 01:38:21 -04:00
Vincent Koc
f643c9b2f8
perf(ci): raise Node shard parallelism to 28 ( #101174 )
2026-07-06 21:59:22 -07:00
Peter Steinberger
1898afe076
perf(test): overlap PowerShell installer exit checks
2026-07-07 00:57:24 -04:00
Peter Steinberger
db42f05efe
perf(test): batch source directory routing assertions
2026-07-07 00:27:23 -04:00
Peter Steinberger
4fa8af486f
perf(test): drop redundant benchmark cli spawn
2026-07-06 22:44:30 -04:00
Peter Steinberger
f3106057e6
perf(test): batch install PowerShell cases
2026-07-06 21:47:22 -04:00
Josh Lehman
cb0d8a1294
refactor(sessions): move inbound meta, goals, and delivery reads behind the session accessor ( #101180 )
2026-07-06 18:07:26 -07:00
Josh Lehman
4e2a80cac3
refactor(sessions): route new session store bypasses through the accessor ( #101179 )
2026-07-06 18:05:18 -07:00
Vincent Koc
74bb2ad7a5
fix(package): reuse bundled artifact for install smoke
2026-07-07 02:31:09 +02:00
Peter Steinberger
aed2482292
fix(qa): restore automatic smoke coverage across channels ( #101186 )
...
* fix(qa): restore channel-sharded smoke coverage
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(qa): restore channel-sharded smoke coverage
* fix(qa): restore channel-sharded smoke coverage
* fix(qa): restore channel-sharded smoke coverage
---------
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-06 17:09:40 -07:00
Peter Steinberger
054e3675e1
feat(android): publish signed APKs with stable releases ( #101212 )
...
* feat(android): publish signed release APKs
* fix(android): preserve fallback corrections
* test(android): isolate APK signer fixtures
* docs: refresh generated docs map
2026-07-07 00:39:59 +01:00
Peter Steinberger
317aa89af5
perf(test): unit-test parallels validation failures
2026-07-06 19:16:56 -04:00
Peter Steinberger
4c6c9660c3
fix(install): raise postinstall dist scan budget so npm upgrades cannot trip the shared cap ( #101206 )
...
The single InstalledDistScanBudget is consumed across all three prune
walks (legacy-deps prepass, dist file listing, empty-dir sweep). During
an npm upgrade the dist dir transiently holds old+new content-hashed
files, so a real upgrade scan totals ~24k entries against the 25k cap;
one more release of dist growth would make 'npm install -g openclaw'
throw InstalledDistScanLimitError for every upgrading user. Raise the
cap to 100k for real headroom while keeping the unbounded-scan guard,
and ratchet the cap in the test so it cannot be lowered back.
2026-07-07 00:07:05 +01:00
Peter Steinberger
2424fdf8e5
ci: keep native landing validation off queued Blacksmith capacity ( #101196 )
...
* ci: route native i18n release gates to hosted runners
* ci: keep Testbox PR validation on hosted runners
* fix(ci): gate Testbox lifecycle to real leases
2026-07-06 23:14:27 +01:00
Peter Steinberger
246b5bbcca
perf(test): run docs i18n partitions concurrently
2026-07-06 17:31:23 -04:00
Josh Lehman
c7295e417d
chore(scripts): add debt ratchet to the session-accessor boundary guard ( #101178 )
...
* chore(scripts): add debt ratchet baseline to session-accessor boundary gate
* fix(scripts): fail session-accessor debt gate until baseline ratchets down
2026-07-06 13:55:16 -07:00
Dallin Romney
6bffda4166
ci: temporarily disable QA smoke ( #101185 )
2026-07-06 13:38:33 -07:00
Dallin Romney
66b4dcf184
chore(docker): execute Compose and package artifact proofs ( #101045 )
...
* test(docker): prove Compose and package artifacts
* test(docker): use bounded container cleanup
* test(docker): bound package proof launch
* test(qa): keep Docker artifact proofs release-only
* test(docker): simplify artifact proof names
* test(docker): satisfy identity writer lint
2026-07-06 13:05:34 -07:00
Peter Steinberger
2723628dd9
perf(test): unit-test crabbox provider aliases
2026-07-06 14:52:53 -04:00
Peter Steinberger
553acdfc1a
feat(gateway): add tts.speak method returning synthesized audio inline ( #100770 )
...
* feat(gateway): add tts.speak method returning synthesized audio inline
* test(gateway): type tts.speak synthesis mock for failure shapes
* fix(gateway): restore lowercase normalizer import used by talk catalog
* test(gateway): shift advertised-method window for tts.speak
* fix(gateway): ready tts speak for landing
* docs(changelog): record tts speak gateway API
* test(agents): stabilize fast auto startup synchronization
* test(crabbox): stabilize sparse checkout exit guard
2026-07-06 18:25:08 +01:00
Vincent Koc
3ad77774f0
fix: carry 2026.7.1 stability repairs into main ( #101043 )
...
* fix(telegram): throttle reconnect delivery drains
(cherry picked from commit 7182c74d04 )
* fix(agents): honor aborts during session lock acquisition
(cherry picked from commit 6443c2a552 )
* fix(cli): prefer installed launcher package roots
(cherry picked from commit 37e1b324db )
* fix(e2e): allow Linux onboarding to finish
(cherry picked from commit 88192552a0 )
* fix(e2e): scrub single-plugin allowlists on Windows
(cherry picked from commit bee5dee521 )
* fix(e2e): preserve Windows config shape during updates
(cherry picked from commit a580a7fe3f )
2026-07-06 10:17:36 -07:00
Vincent Koc
b3db79929f
fix(test): preflight targeted UI e2e ( #100950 )
2026-07-06 07:46:08 -07:00
Peter Steinberger
876ab9bb0b
feat(android): add chat message actions ( #100879 )
...
* fix(android): add chat message actions
* chore(android): sync native i18n inventory
* fix(i18n): collect Android action labels
* fix(i18n): preserve Android placeholders
2026-07-06 13:50:16 +01:00
Vincent Koc
56fe5d0459
fix(release): skip loader lifecycle scripts on Windows
2026-07-06 04:57:57 -07:00
Peter Steinberger
f53346944d
feat: correlate native search outcomes in audit history ( #98704 )
...
* feat: correlate native search outcomes in audit history
Metadata-only audit ledger for agent runs and tool actions in the shared
state DB: stable event identity, closed action/status/error vocabularies,
one-way-hashed tool-call ids, never-inferred terminal outcomes for native
web-search (explicit completed/failed only; otherwise unknown), bounded
retention, audit.list gateway RPC and openclaw audit CLI. Squashed from
the 82-commit audit stack for replay onto current main.
* feat(audit): add audit.enabled config gate (default on)
The metadata-only audit ledger records by default: an audit trail enabled
only after an incident cannot explain the incident, and the rows are
strictly less sensitive than the transcripts every install already
stores. audit.enabled=false stops new writes at the gateway subscription
seam; audit.list and openclaw audit keep serving existing records until
they expire. Documented in the configuration reference, protocol page,
and CLI reference.
* fix: repair full-matrix CI findings after rebase
- break the dynamic-tools/dynamic-tool-execution import cycle by
extracting resolveCodexToolAbortTerminalReason into a leaf module
- restore main's session-worktree protocol exports lost in the
index.ts auto-merge
- register the audit event writer worker as a knip entry point
- docs table formatting; subagent wait-cancellation test scoped to its
audit intent (outcome + timing) and advanced past main's new
lifecycle-timeout retry grace
2026-07-06 12:30:12 +01:00
Vincent Koc
96e676c2b3
fix(release): hydrate fresh Anthropic OAuth access
2026-07-06 04:20:58 -07:00
Vincent Koc
cbf9acff37
fix(release): reuse setup-token for Anthropic live checks
2026-07-06 03:46:22 -07:00
Vincent Koc
fa70403403
fix(release): isolate Claude ACP subscription auth
2026-07-06 02:58:59 -07:00
Vincent Koc
c42ef8b267
fix(release): harden Claude CLI live probe
2026-07-06 02:52:24 -07:00
Vincent Koc
c9abc75884
refactor: remove dead code and consolidate repeated paths ( #100650 )
...
* refactor(search): reuse provider setup finalizer
* refactor(android): remove unused helpers
* refactor(apps): remove unused Swift declarations
* refactor(diagnostics): reuse private reply delivery
* refactor(memory): reuse raw short-term store writer
* refactor(logbook): reuse batch row mapping
* refactor(scripts): centralize oxlint format policy
* refactor(memory): share qmd cache context hashing
* refactor(doctor): share auth issue classification
* chore(i18n): refresh native source inventory
2026-07-06 02:24:37 -07:00
Vincent Koc
65131633a1
fix(ci): tolerate periphery comment permission denials
2026-07-06 11:18:58 +02:00
Vincent Koc
d9a2b7c6a9
fix(pr-gates): reject normal root changelog edits
2026-07-06 11:09:49 +02:00
Vincent Koc
0c38082c6d
fix(maint): use canonical hosted gate verifier
2026-07-06 01:18:19 -07:00
Vincent Koc
23f492fcaf
test(release): cover pinned Claude CLI install
2026-07-06 00:41:41 -07:00
Glen - I am an OpenClaw+Codex bot
23998a148f
fix(build): fall back to tsx for build TypeScript scripts ( #91262 )
...
* fix(build): fall back to tsx for build TypeScript scripts
* fix(build): use tsx across TypeScript build scripts
---------
Co-authored-by: Steffen Moeller <moeller@debian.org >
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
2026-07-06 06:55:20 +00:00
Peter Steinberger
5d9cec16f3
fix(maint): reuse recent hosted gates after rebase ( #100663 )
...
* fix(maint): reuse recent hosted gates after rebase
* fix(maint): preserve whitespace in gate fingerprints
2026-07-06 07:43:03 +01:00
Sebastien Tardif
0d6a1dcb53
fix(install): trap SIGINT so Ctrl+C exits cleanly during upgrade doctor ( #76386 )
...
* style: restore exec approval e2e formatting
* fix(install): trap SIGINT so Ctrl+C exits cleanly during upgrade doctor
Three changes to fix the install script's Ctrl+C handling:
1. Add INT/TERM signal traps that clean up temp files and exit with
the correct signal exit codes (130 for SIGINT, 143 for SIGTERM).
2. Preserve signal exit codes (>128) through run_quiet_step so the
doctor path can distinguish user cancellation from normal errors.
Non-signal failures still return 1, preserving existing caller
semantics for all other installer steps.
3. Fix guardCancel in onboard-helpers.ts: exit(0) changed to exit(1)
so Clack prompt cancellation (Escape/Ctrl+C) is treated as failure,
not success. This prevents the installer from continuing with plugin
updates after the user explicitly cancelled.
Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca >
* fix(install): abort dashboard launch on doctor cancellation
When a user cancels the interactive upgrade-doctor prompt (Clack
cancellation exits 1, SIGINT exits 130), clear should_open_dashboard
so the installer does not launch a dead dashboard after an incomplete
upgrade.
Also propagate non-zero exit from run_doctor() so the non-interactive
upgrade path correctly skips dashboard launch on failure.
* fix: guard every run_doctor caller and add focused tests
The existing-config path called run_doctor without checking its return
value, so a failed or cancelled doctor would still launch the dashboard.
Now both run_doctor call sites guard the return value with if-then.
Adds focused tests verifying: every run_doctor caller is guarded,
dashboard flag is cleared on doctor failure, signal exit codes
propagate through run_quiet_step, and SIGINT (exit 130) triggers
abort_install_int.
* retrigger proof check
* fix: exit 130 on Clack cancellation so installer treats it as SIGINT
guardCancel now exits with 130 (SIGINT convention) instead of 1. When
the user presses Ctrl+C at an interactive doctor prompt, the installer
sees doctor_exit=130 and calls abort_install_int, aborting cleanly
instead of continuing after exit 1.
Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca >
* fix: narrow exit 130 to doctor-prompter path only
Revert guardCancel to exit 0 by default (matching main) and pass
exit code 130 only from doctor-prompter where the installer needs
to distinguish user cancellation from normal failures.
This preserves the existing cancellation behavior for configure,
wizard, gateway, and daemon prompts while keeping the SIGINT
convention for the installer's doctor subprocess.
Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca >
---------
Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 06:19:44 +00:00
Vincent Koc
7b6b39e0f8
fix(ci): keep full Anthropic Docker proof advisory
2026-07-05 23:01:01 -07:00