From a0782a65aff5a2d9efd4f307af02910fe22fcfc2 Mon Sep 17 00:00:00 2001
From: nish3451 <257724087+nish3451@users.noreply.github.com>
Date: Sun, 9 Aug 2026 22:41:09 +0530
Subject: [PATCH] docs(evidence): close out fleet-release finding against
current main and live
release-state advanced past the stuck eae1d87c to c5e2f2b, shipping merged
PRs #28 (heading hierarchy) and #30 (apple-touch-icon). Live verification:
homepage has zero heading-level skips, all five appraisal pages serve
rel=apple-touch-icon resolving 200, npm run check and npm test pass on
origin/main.
---
docs/evidence/fleet-release-2026-08-09.md | 125 ++++++++++++++++++++++
1 file changed, 125 insertions(+)
create mode 100644 docs/evidence/fleet-release-2026-08-09.md
diff --git a/docs/evidence/fleet-release-2026-08-09.md b/docs/evidence/fleet-release-2026-08-09.md
new file mode 100644
index 00000000..a42c466b
--- /dev/null
+++ b/docs/evidence/fleet-release-2026-08-09.md
@@ -0,0 +1,125 @@
+# Fleet release past the stuck release-state SHA — live-deployment verification
+
+Date: 2026-08-09
+Scope: the fleet release pipeline for tinystudio.io (scout finding, "Ship
+origin/main past the stuck fleet-release SHA" — merged PRs #28 (heading
+hierarchy) and #30 (apple-touch-icon) were on main but not live).
+This receipt records a live measurement of the deployed site plus the release
+state. It is behavior evidence, not a source check, and it does not claim
+anything about ranking, traffic, or search results.
+
+## What was measured
+
+The fleet's hourly release pipeline (fleet-release) pins the last successful
+deploy in `release-state-tinystudio-io.json` and refuses to ship a main SHA
+whose required checks are not green. At scout time the release state was stuck
+at `eae1d87c` (PR #31, og-image) while origin/main carried two merged but
+undeployed fixes: PR #28 (`7be3d8f`, heading hierarchy cleanup on home and all
+six served pages) and PR #30 (`b004c11`, apple touch icon on the five public
+pages). The live homepage still served 14× `
` (source had 0) and zero
+`apple-touch-icon` link tags.
+
+This receipt verifies, against current main and live, the acceptance criteria
+of that finding: the release state has advanced past `eae1d87c`, the live
+homepage no longer has heading-level skips, and every appraisal page serves a
+working `rel=apple-touch-icon`.
+
+## Environment
+
+- Live target: `https://tinystudio.io/` and the five appraisal pages, served
+ by the deployed Cloudflare Worker (ASSETS binding; see `src/worker.js`).
+- Release state: `/home/nish/workspaces/agent-state/lanes/release-state-tinystudio-io.json`
+ (fleet-release's last-successful-release record).
+- Source baseline: `origin/main` at `ac05bec` (PR #48, mobile tap targets),
+ fetched fresh; the pages were fetched over HTTPS and compared against
+ `public/*.html` on that head.
+
+## Results (deployed site, 2026-08-09)
+
+### Release state advanced past the stuck SHA
+
+`release-state-tinystudio-io.json` now pins:
+
+```json
+{ "sha": "c5e2f2b88322e09f22114bd96d590d414c86ce03", "at": "2026-08-09T19:38:21" }
+```
+
+`c5e2f2b` (PR #46) is strictly newer than the stuck `eae1d87c` and includes
+every merge from #28 through #46 — the two PRs the finding named are live.
+
+### Live homepage heading hierarchy
+
+Fetched `https://tinystudio.io/` and counted rendered heading tags:
+
+| heading | count |
+|---|---|
+| h1 | 1 |
+| h2 | 9 |
+| h3 | 18 |
+| h4+ | 0 |
+
+No heading-level skip (no `h2`→`h4`) remains on the live homepage; the
+outline descends `1-2-3` matching `public/index.html` on origin/main. The
+sibling appraisal pages also serve skip-free outlines (`/audit` 1-2-3,
+`/pricing` 1-2-3, `/agents` 1-2, `/specimen` 1-2-3), consistent with the
+regression suite in `scripts/test-heading-hierarchy.mjs`.
+
+### apple-touch-icon on every appraisal page
+
+Each of the five public pages serves `` in its head, and the icon itself resolves:
+
+```
+$ curl -s -o /dev/null -w '%{http_code} %{content_type}\n' https://tinystudio.io/apple-touch-icon.png
+200 image/png
+```
+
+Pages verified: `/` (home), `/audit`, `/pricing`, `/agents`, `/specimen` —
+all five carry the link and the asset returns HTTP 200.
+
+## Source checks on the current head
+
+1. `npm run check` passes: "TinyStudio.io checks passed." (site guards: meta
+ descriptions, canonical URLs, structured data, internal links, sitemap).
+2. `npm test` passes: the source checks plus the heading-hierarchy, sitemap,
+ agent-worker and agent-UI suites — all green, exit code 0.
+3. The heading-hierarchy regression suite (`scripts/test-heading-hierarchy.mjs`)
+ locks the corrected outline of each of the six served pages and proves the
+ checker rejects the pre-fix shapes; the sitemap suite
+ (`scripts/test-sitemap.mjs`) locks the clean-URL loc set.
+
+## Exact verification method (reproduce)
+
+1. Read `release-state-tinystudio-io.json` and confirm the `sha` is newer than
+ `eae1d87c` (any merge ≥ `b004c11` satisfies the finding).
+2. Fetch each of `/`, `/audit`, `/pricing`, `/agents`, `/specimen` and assert
+ each head contains ``
+ and that `https://tinystudio.io/apple-touch-icon.png` returns 200.
+3. Fetch `/` and count heading tags: exactly one `h1`, no `h4`/`h5`/`h6`, and
+ no level skips in the descending outline.
+4. Run `npm run check` and `npm test` on origin/main.
+
+## Limitation
+
+This is a live-deployment measurement plus a release-state read, not a CI
+gate. At measurement time origin/main HEAD is `ac05bec` (PR #48, mobile tap
+targets) while the release state pins `c5e2f2b` — one merge ahead on main that
+the hourly pipeline has not yet shipped because its required checks on
+`ac05bec` are failing to start (GitHub Actions job startup is blocked
+account-wide: "recent account payments have failed or your spending limit
+needs to be increased"; the same block is visible on the other fleet repos).
+That gap belongs to the mobile-tap-targets finding, not to this one: every
+merge the fleet-release finding named (PRs #28 and #30) is deployed and
+live-verified here. Nothing in this item requires a bypass of the release
+gate; the pipeline will ship `ac05bec` once its checks can start and go green.
+
+## Closeout
+
+Nothing further to change for this item: the two merged PRs the finding named
+(PR #28 heading hierarchy, PR #30 apple-touch-icon) are both present in the
+deployed release (`release-state-tinystudio-io.json` sha `c5e2f2b`, past the
+stuck `eae1d87c`), the live homepage shows zero heading-level skips matching
+source, all five appraisal pages serve `rel=apple-touch-icon` resolving HTTP
+200, and `npm run check` / `npm test` pass on the current origin/main head.
+The receipt now records the closeout on the current head so the finding cannot
+be re-opened by tracker drift.