Repository navigation
CI proof for the never-run list, and two release checks - #89
Merged
Merged
Conversation
…elease checks Four GitHub-hosted jobs for the never-run list: fleet / launchd smoke, fleet / windows task smoke, fleet / container smoke (arm64) and desktop / launch smoke. A changelog coverage check for release PRs and a check that marked workload counts in the docs match the catalog. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The task stored backslash-escaped quotes in its command and failed with file-not-found every time it ran; uninstall deleted the task without stopping it. The desktop app refused programmatic exits (so Quit could not quit) and died on SIGTERM leaving its sidecar running. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
launchd, the Windows task, the arm64 image and the desktop app's launch move out of the not-verified lists, each saying what CI checks and what it does not. Count markers inside code spans are examples, not counts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
addisdev
marked this pull request as ready for review
October 16, 2026 01:11
# Conflicts: # CHANGELOG.md # README.md
# Conflicts: # CHANGELOG.md # CONTRIBUTING.md
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
Owner
Author
|
Self-review: launchd/Windows task/arm64 container/desktop launch smokes, the Windows schtasks quoting fix and desktop signal handling, changelog-coverage and count checks. All 29 checks green. Merging (LOOP-PLAN Phase 6 + release hygiene). |
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
LOOP-PLAN.md Phase 6 (the four CI items; the identity-provider item waits on WB-350) and two of the Release hygiene checks (changelog coverage, generated counts). The mermaid check is left to the docs session (#90);
docs.ymlis untouched.New GitHub-hosted jobs (all path-filtered through
ci.ymllike their siblings)fleet / launchd smoke(macos-latest):fleet service install→ plist lints → collector answers/api/v1/health→ agent registers →fleet service statusexits 0 → reinstall (hits the bootout/bootstrap race; the log shows "launchd is still letting go of the old job; waiting" and recovery) → uninstall → nothing answers, plist gone,launchctl print gui/<uid>/com.addisdev.fleetfails,statusexits non-zero. The runner does have agui/501domain; the job prints it first.fleet / windows task smoke(windows-latest): same lifecycle for the scheduled task.fleet / container smoke (arm64): the existing container job became a two-row matrix; the arm64 row builds natively onubuntu-24.04-armand asserts the container saysaarch64. The amd64 check keeps its name.desktop / launch smoke(ubuntu-latest):cargo build --features custom-protocol, thendesktop/ci/launch-smoke.shunder Xvfb. Half 1: launch the binary with no config, sidecar's collector answers and its agent registers, app still up after 20 s, SIGTERM stops the app and its sidecar. Half 2:tauri-driver+ plain W3C WebDriver over curl: titleFleet,window.__TAURI__present,get_statusover IPC saysrunning: true, headline rendersRunning: brain, agent · :8788, screenshot uploaded as thedesktop-launch-smokeartifact. So WebDriver, not just process-level.Bugs the jobs found, fixed here
/TRwas built with\"escaping; execFile quotes the argument itself, so the task stored\"C:\...\node.exe\"and failed with 0x80070002 (file not found). Now bare quotes (windowsTaskCommand, unit-tested). Uninstall/stop also killfleet up's tree by the supervisor pid (only while the task reports Running) before/End, since deleting a task does not stop it. With the fix, a Windows agent registered against a real collector for the first time.RunEvent::ExitRequestedrefused every exit, including Quit'sapp.exit(0). Now SIGTERM/SIGINT/SIGHUP take the Quit path viasignal-hook(new dependency, unix only), and only the implicit exit (code == None) is prevented. The smoke asserts it.Release hygiene
changelog coverage(job inci.yml, inci-ok's needs; skipped unless the head isrelease/*or it'sdevelop→main):scripts/changelog-coverage.mjs+scripts/changelog-coverage.test.mjs. First-parent merge/squash subjects on the PR head since the newestv*tag, against the text between## [Unreleased]and the last tag's heading;no-changeloglabel (created) and Dependabot exempt; labels looked up withghonly for unmentioned PRs. Documented in CONTRIBUTING (release branches must be namedrelease/X.Y.Z; changelog bullets end with a PR link). The two existing [Unreleased] bullets got their PR links (Installers copy skills/ from the release #86, Docs catch up with 0.8.0 and the explore work #88), which the check otherwise flags.<!-- count:workloads -->Nmarkers on the 7 hand-written counts (README ×2, collector/README, docs/index, docs/workloads/index, getting-started's "thirty-odd" → exact, install/macos's stale "thirty").scripts/check-counts.mjsreadscatalog.tsas text (no npm ci) and runs in a new unconditionalrepo scriptsjob, so docs-only PRs are checked too; markers inside code spans are ignored. The collector suite gained a step that checks that text count against the real importedCATALOG(collector/scripts/check-counts.ts).Not verified
/Endalone would have left the children running was not tested separately; the tree kill is from reasoning about Windows process semantics.release/*PR ([throwaway] exercise the changelog coverage job (do not merge) #91, closed, branch deleted). It passed with Installers copy skills/ from the release #86/Docs catch up with 0.8.0 and the explore work #88 mentioned, and failed naming#88 Docs catch up with 0.8.0 and the explore workonce that mention was removed, so theghlookup works withGITHUB_TOKEN./usr/local/bin/nodeover PATH; GitHub's image has an old Node there, so the smoke setsFLEET_NODE. Recorded in desktop/README, not changed.Test evidence
repo scriptsand the docs build.collectorCI=true npm test→ALL PASS(incl.ok scripts/check-counts.mjs and CATALOG agree: 34 shipped workloads);fleetnpm test→tests 81, pass 79, fail 0, skipped 2(the two end-to-end tests skip there without runner-machine deps; CI's fleet matrix runs them);node --test scripts/*.test.mjs→tests 15, pass 15, fail 0;node scripts/check-counts.mjs→ok -- 7 marked count(s) agree: 34 workloads.🤖 Generated with Claude Code