Repository navigation
Conversation
bug-garden/tools/check-bench.mjs ignored the `absent_text` the harness enforces, so bench-delete-plant passed without checking Aloe Vera was gone, and it matched case-sensitively where the harness does not. It now does both as the harness does. The skill's exit-4 line said a skip meant "no build, no matching device". Both of those are refused at enqueue (exit 2 or 5) and never run; exit 4 is a job that was claimed and reported `skipped:`. Regenerated SKILL.md. seed-schedules: the comment counted three explore schedules (there are four) and still expected the TV one to wait for a Fire TV test; Fire TV is parked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 0.8.0 changelog left out everything merged before the cut that was not the control API: exploratory QA (#70, #73, #74, #77, #78), the device art (#69) and the two runner-android fixes (#75, #76). They get an "Also in this release" section with their not-verified items. A read of every page against the code found ~60 stale spots. The main ones: - Explore: card counts, Holo4's measured status, tool_choice and json_schema requirements, the real gateway-key lookup order and env vars, Fire TV parked for tvOS, the night-queue jobs and priorities, budgets, auth on POST /findings. - Front door: Explore in the README, index and getting-started; 34 workloads, not 28; "no authentication, by design" now says by default and links the opt-in tokens; the Roku driver; strict validation is /api/v1 only; CI-verified items in platforms; ultra and the S8+ in the lab runbook; #45's caveat removed (fixed in 0.6.1). - API and integration: undocumented routes and /metrics, the guards under FLEET_AUTH, CLI flags and env vars, the /api/v1-only owner and shell checks stated plainly. Guides lead with fleetr instead of the deprecated routes, say what ci-enqueue gets wrong (a skip exits 0; no token), add the required app.build to examples, and split an array "enqueue" no endpoint accepts into three specs. - A tvloop section in workloads/host.md, which the catalog already linked. - mkdocs nav listed the ultra runbook twice; it stays under Exploratory QA and the Deploy overview links it. Not done here: the three mermaid diagrams in the explore pages, the 28- workload figure and the pre-device-art dashboard screenshots. They need figures rendered, not text edits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Docs catch up with 0.8.0 and the explore work
The explore docs' night flowchart, one mission's sequence and the code map were the only mermaid left. They are now figures in docs/figures/ (explore-night, explore-step, explore-code) on brand.css and symbols.js, rendered by `npm run assets` to PNG at 2x, every label checked against the code (replay_attempts 2, PRECISION_FLOOR 0.3 with ten judged, the pilot and vision gateway defaults, fileable() filing crash logs unreplayed). The docs workflow now fails on a mermaid fence under docs/, and mkdocs.yml drops the mermaid custom fence. workloads.html shows all 34 shipped catalog entries (adds enrol, explore, upgrade-test, size-report, tvloop, llm-eval), so the README loses its "the figure predates six of them" aside. devices.png (the PR #69 device drawings) and a new findings.png come from the lab's running brain via a new read-only `npm run shoot:live`, filtered to online devices and the bug-garden fixture app; brand.md records why a throwaway collector cannot honestly make either. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…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>
…PR builds off latest - Legacy cancel/retry make the owner check and legacy enqueue the shell/admin check, through one shared module (collector/src/api/policy.ts) that /api/v1 also uses. - ci-enqueue moves to /api/v1 with fleetr's exit codes (4 on skipped); ci-enqueue and ci-upload send FLEET_RUNNER_TOKEN/FLEET_TOKEN as a bearer. - x-artifact-channel: pr; "latest" never resolves to a pr build. Both CI scripts set it on pull_request events or --channel pr. - fleet/package.json bin points at dist/bin/fleet.mjs and packs dist/. - version.mjs writes the desktop app's Cargo.toml and tauri.conf.json (0.8.0). - check-examples runs the API's strict schema and params manifests (spec-check.ts, shared with routes.ts); CHECK_NAMES drops names nothing raises. - FLEET_PEER_TOKENS for the peers proxy; explore mirror frames send FLEET_TOKEN; timer intervals validated (>= 1000 ms); stale discovery comments fixed. - Schedule templates: an empty job_id is dropped with a warnings entry. 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>
…ter checks explore-night.ts now checks the cheap things before it warms the model or boots a device. With --fresh-build, a spec on "latest" needs a build the brain shows as published tonight; without one the job is posted as a skip (ok: true, "skipped: no <app> build for tonight (...)") and the command exits 0, since ultra's night queue has no skip code. It knows when the night ends (--until, default 07:30, or the job's max_minutes read from the night queue's manifest) and cuts each spec's minutes to fit, the workload saying "short night: ran N of M cards: X minutes left of the Y asked". The shelf warm-up moved from the manifests into --warm, run after the checks, with a refusal for memory retried and then posted as a skip: that refusal (64% free, needs 65%) was fleet-explore-apple's exit 1 on 10-14. nightly-builds.sh republishes an unchanged build so a quiet day is not a missed build. --dry-run runs the checks against the live brain and posts nothing. Also fixes tvOS simulators describing themselves as os "ios", which made every fleet-explore-tv job skip with "no device matches". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs: hand-placed figures replace the last mermaid diagrams
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
…ry hygiene LOOP-PLAN Phase 1, all four items. - The queue closes a job that ran nothing as `skipped` (one rule, skip.ts, shared with a one-time backfill that re-labels historical `done` skips in the migration that widens the status constraint). Status filters, facets, /metrics, the Overview, the dashboard chip and the morning digest know it. Waiters on a skipped dependency skip with "dependency X skipped". - A `schedule-skipping` alert after FLEET_ALERT_SKIP_STREAK (3) skipped runs. - ui-test reads the failing flow and step out of Maestro's JUnit report; every host row with ok:false gets a reason (fleet-client wrapper); a failed job's last_error carries it. GET /api/artifacts/:sha now 308s to the v1 content route instead of "no such endpoint". - Rokus register as platform roku; a serial-named Roku retires its IP-named duplicate; the sweep forgets declared simulators offline past FLEET_SIMULATOR_TTL_DAYS (7). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…he bash warm-up case on Windows Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # CHANGELOG.md # README.md
Close 0.8.0's loose ends (LOOP-PLAN Phase 3, items 1-8)
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md # collector/src/api/v1/routes.ts
# Conflicts: # CHANGELOG.md # CONTRIBUTING.md
Explore nights adapt: short nights, skips for missing builds, warm after checks
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
…hecks Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Honest green: skipped is a job status, every failure says why, registry hygiene
# Conflicts: # CHANGELOG.md
CI proof for the never-run list, and two release checks
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 10-15 garden night skipped after ten minutes of "not loading holo4-35b-a3b: 56% free, needs 65%": ultra's resident models alone hold it near 56% free, so an explore night could never load its driver. Holo4 is about 25 GB; at 45% (~43 GB free) it leaves room. The owner chose this over unloading the shelf (which would take explore's own judge with it). Only explore's warm-up changes: the manifests pass WARM_MIN_FREE_PCT=45 to shelf.sh, whose default for everything else stays 65%, and it still refuses under memory pressure. ultra's ~/explore/env.sh exports the same, which is what covers the night already queued with the old commands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ings become nightly regression tests Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…essions Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… client The dashboard called the deprecated GET /api/devices, /api/devices/:id, /api/jobs, /api/jobs/:id and POST /api/jobs with hand-written response types. It now uses the generated client (dash/src/client.ts) for every read and change /api/v1 offers, so its types are the client's and a field the server drops fails check-api-v1 instead of blanking a column. - /api/v1 schemas state every field the dashboard reads (Beacon, Device, DeviceDetail, Job, JobDetail, Schedule), required where the handler always sends it. - listDevices and listJobs return the facets their filter menus are built from; listJobs takes has_error. - forward() carries X-Fleet-Token, so /api/v1 cancel and retry work on a collector with FLEET_DASH_TOKEN set (they were always 401 there). - scripts/check-dash-requests.ts fails the suite if dash/src calls a route deprecations.ts marks. Findings and every route /api/v1 does not offer stay on /api/*. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
explore: load Holo4 at 45% free memory
# Conflicts: # CHANGELOG.md
Dashboard: read devices, jobs, templates and schedules through the v1 client
… findings list facets; deprecate the older findings routes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Findings reach the code: /api/v1, fleetr and MCP, and fixed findings become nightly regression tests
Version 0.9.0 everywhere (scripts/version.mjs) and the OpenAPI document regenerated. CHANGELOG: [Unreleased] becomes [0.9.0] with an intro and a not-verified list; bullets from #92, #93 and #94 gain their PR links, and five bullets the changelog merges had duplicated are folded back into one each. docs/lab.md no longer says the brain is on 0.7.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Release 0.9.0
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.
Release 0.9.0: develop → main. See CHANGELOG.md [0.9.0]: skipped as a job status and stale-skip alerts, failure reasons, findings in /api/v1 + fleetr + MCP with regression tests from fixed findings, adaptive explore nights, scope checks on the older routes, PR builds never move latest, the dashboard on the v1 client, and CI for launchd, the Windows task, the arm64 image and the desktop app.
🤖 Generated with Claude Code