Skip to content

Instantly share code, notes, and snippets.

@jonasvanderhaegen
Last active August 9, 2026 03:10
Show Gist options
  • Select an option

  • Save jonasvanderhaegen/bbda98269cc23254bcaebc31b187e8ef to your computer and use it in GitHub Desktop.

Select an option

Save jonasvanderhaegen/bbda98269cc23254bcaebc31b187e8ef to your computer and use it in GitHub Desktop.
R2 + local cache health checklist (sky orgs joint doctrine, reconstructed 2026-08-01)

R2 + local cache health checklist (sky orgs joint doctrine, reconstructed 2026-08-01)

R2 + local cache health checklist (sky orgs joint doctrine)

Ratified 2026-07-10 by both sky orgs. This document was RECONSTRUCTED on 2026-08-01 after the original gist 404'd: the item list below is the ratified scope recorded verbatim in the binary-lsp-php-server CLAUDE.md; the commands and thresholds were re-derived from the repos' release tooling (ship.sh both repos, release-preflight.sh) and validated end-to-end during the acuity 0.1.44 + skyline 1.2.3 release of 2026-08-01. Items whose original wording may have differed are the checks, not the scope. The addendum at the bottom is post-ratification field knowledge, kept separate on purpose.

Run this after ANY release or daemon promote, and in the weekly sweep.

1. Channel index vs pack sha agreement

The channel index must describe the bytes it serves.

  • acuity: curl -s https://lsp.skylence.be/php-mcp/index.json: the released version present for every platform, each entry carrying sha256 + size. Download one binary and shasum -a 256 it against the index entry (php-server scripts/ship.sh --verify-only VERSION does index poll + download + matrix in one command).
  • skyline: npm view @skylence-ai/skyline version AND every platform package (skyline-darwin-arm64, skyline-win32-x64, skyline-win32-arm64) equal the target (skyline scripts/ship.sh npm-verify stage).

2. CDN propagation skew

The index can be ahead of the edge (or one edge ahead of another) right after publish. Poll until stable: ship.sh polls every 15s up to 600s. On a skew suspicion, fetch the index twice ~30s apart and from a second network path before concluding corruption.

3. Local cache vs channel lag

The box's LSP/MCP binary cache must not silently pin agents to an old build.

  • Cache location: skyline's autofetch cache (newest cached version dir wins).
  • After an acuity release: pkill -x acuity-mcp-server so daemon children respawn and lazily adopt the new version (php-server ship.sh refresh stage does this; it does NOT touch the daemon itself).
  • Verify adoption: one live PHP tool call through skyline, then check the spawned child is the new version.

4. Running-daemon version and env contracts

  • skyline daemon status (or curl -s http://127.0.0.1:7333/api/version): version == released target, persist == installed, uptime sane.
  • Env contract: daemon children inherit the DAEMON's env, not any pane's. Anything the children need (workspace roots, pack dirs) must be in the launchd plist / daemon env, never assumed from a shell.
  • Check last panic in daemon status output; a fresh panic after promote is a rollback signal.

5. Disk headroom

df -g /: release builds on the self-hosted runner (this box) want

= 15 GB free (release-preflight.sh MIN_FREE_GB). Reclaim order: own build targets (cargo clean on dev checkouts and discarded-workspace leftovers), then worktree debris (item 6), never shared caches mid-release.

6. Worktree debris

ls ~/Code/skylence-be/sky-binaries-wt/ (and *-workspaces/ dirs). Delete ONLY what is provably safe: clean tree AND branch merged into (or HEAD ancestor of) its repo's origin default branch. Keep anything dirty, unmerged, or unproven; it is another org's (or a human's) work in progress. git -C <wt> status --porcelain + git merge-base --is-ancestor HEAD origin/main is the proof pair. Registered worktrees leave via git worktree remove, skyrift workspaces via workspace_discard, never rm.

7. Bench pin hygiene

Accuracy-bench and proving-ground runs pin binary versions; after a release, stale pins silently bench the old build. Check the bench configs/workflow pins reference the released version (or an explicit intentional pin), and that accuracy-bench.yml / proving-ground matrices in CI run against the version they claim to.

8. Activation-lock state before promotes

BEFORE any daemon promote: know the license/terms gate state. skyline ship.sh runs a canary boot of the new binary on a scratch port (7401+ base, never 7333) and aborts the promote if the terms gate blocks it. --accept-license records assent and is the OPERATOR'S call exclusively; a release must never pass it silently. A canary abort on the terms gate is a question for the operator, not a failure to work around.


Addendum (field knowledge, post-ratification)

  • 2026-08-01: daemon-spawned shells resolve python3 to macOS system 3.9; php-server's run_matrix.py needs >= 3.10. Prefix PATH=/opt/homebrew/bin for any artifact-verify run driven from a daemon shell.
  • 2026-08-01: this box's proving-ground baseline is 22/24 (magic-model-clean, vendor-declared-at-contained) because two lock packages have no published vendor packs in the channel. Diff matrix results against the PREVIOUS released binary before reading a red as a regression.
  • 2026-08-01: both sky-binaries release repos gitignore .skyrift / .skyrift-workspace, so ship preflight clean-tree checks pass from skyrift workspace clones. Cutting a release from a clone of committed main is the sanctioned route around a dirty shared checkout.
  • 2026-08-01: skyline ship.sh --detach is MANDATORY when driven from a session whose MCP transport rides the 7333 daemon; the promote tail logs to $TMPDIR/ship-promote-<version>.log and survives the transport drop.
  • 2026-08-09: disk headroom now has tooling with known gaps. The runner-gc workflow (binary-skyline, dispatch-only) reclaims cargo target/ debris from the runner work area, BUT (binary-skyline#899): its guard misses cross-compiled release layouts (per-triple target dirs with dist/distrib siblings), and one dispatch sweeps only whichever runner picks up the job; this box registers three skylence-be runners. Until fixed, the reliable form is a guard-identical manual sweep across ~/actions-runners/*/_work during a verified idle window (zero queued/in-progress runs on all repos).
  • 2026-08-09: the detached promote tail now exits nonzero when its own verify fails (binary-skyline#766, merged in PR #909). The tail log's exit code is finally meaningful; a 0 no longer needs independent confirmation of the verify section.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment