| 1 | # v0.9.1 public-surface readiness receipt |
| 2 | |
| 3 | This packet finishes the v0.9.1 public-surface pass for one exact frozen |
| 4 | runtime without claiming that the candidate has been published or deployed. |
| 5 | |
| 6 | ## Repository state |
| 7 | |
| 8 | - Protected base at source freeze: `a7c00a1a8e48021daf2a9c78cfc1dbda8269e074` |
| 9 | (`origin/main`, refreshed 2026-07-22) |
| 10 | - Runtime source: `4d197626d72b4bd27e1abf4eed92e86e914414a8` |
| 11 | - Product truth: `508726960` |
| 12 | - Product-first homepage: `e37df06ca` |
| 13 | - Credential-free deploy preflight: `74862148a` |
| 14 | - No Cloudflare deployment, tag, GitHub Release, package publication, or |
| 15 | artifact publication occurred while producing this packet. |
| 16 | |
| 17 | Open PRs were refreshed immediately before sign-off. Draft #4675's remote head |
| 18 | `e2208815e51cdc42830cec8c78d4db1fff00d490`, #4679's head |
| 19 | `7684cbec32a355f72f0a5bd7ef996bdeddf798e0`, and #4680's head |
| 20 | `ccf4c218f619dd9772dd1079f49607faa3504a8e` are unchanged ancestors of the |
| 21 | frozen source, alongside merged PRs #4673 and #4678. No contributor history |
| 22 | was flattened or rewritten. Draft #4508 supplied recovered screenshot intent; |
| 23 | it was not merged wholesale. |
| 24 | |
| 25 | The credited fixes for #4681, #4682, the verified strict-DeepSeek boundary in |
| 26 | #4683, and Wenhao Hu's Full Access/global-skill boundary report in #4684 are |
| 27 | also ancestors of the frozen source. The broader intermittent network symptom |
| 28 | reported in #4683 was not reproduced and is not claimed fixed. |
| 29 | |
| 30 | ## Scope decisions |
| 31 | |
| 32 | - Keep the existing Blue Stage visual direction instead of introducing a new |
| 33 | design system. |
| 34 | - Describe a bounded path from task to verified change, not a perpetual loop. |
| 35 | - Use the existing whale component with a small CSS sun in the community |
| 36 | section; no generated illustration is shipped. |
| 37 | - Use the real TUI PTY capture from commit |
| 38 | `4d197626d72b4bd27e1abf4eed92e86e914414a8` as the homepage and README image. |
| 39 | The two public copies share SHA-256 |
| 40 | `8ffd0c36699930a9af7bcca3e93d3f9bc8a11df5a691e88335fc8b1f0442a754`. |
| 41 | |
| 42 | ## Visual QA |
| 43 | |
| 44 | The production build was inspected in the Codex in-app browser in English and |
| 45 | Chinese at 1280x720 and 390x844, plus the 1012px README content width. Both |
| 46 | mobile pages reported a 390px layout viewport and 390px document width, with |
| 47 | no horizontal overflow; the 1012px review likewise reported a 1012px document |
| 48 | width. The authored locale switch reached `/zh` with `lang=zh`, the mobile menu |
| 49 | opened as a dialog, locked body scrolling, moved focus to its Close control, |
| 50 | and restored the underlying page when closed. The install copy control changed |
| 51 | to `Copied ✓` and rendered its two-pixel focus-visible outline. |
| 52 | |
| 53 | The browser context reported `prefers-reduced-motion: false`; it did not expose |
| 54 | a media-emulation capability, so this packet does not mislabel that default |
| 55 | context as a native reduced-motion capture. No running CSS animation was |
| 56 | present in any accepted homepage frame. The source contract separately checks |
| 57 | that the only web animation classes are disabled in the reduced-motion media |
| 58 | query and that the terminal trace stays fully rendered instead of rewinding |
| 59 | when that query matches. The locked real-PTY matrix remains the native proof |
| 60 | for Codewhale's Full, Reduced, and Still motion states. The Open Graph route |
| 61 | returned HTTP 200 as a 1200x630 `image/png` with SHA-256 |
| 62 | `a2a03a2fbe32b0e307f159e54d4c94d8b7b83e4cfef1d669b218421e8f8acb11`. |
| 63 | |
| 64 | Artifacts: |
| 65 | |
| 66 | - `docs/evidence/v091-home-desktop.png` |
| 67 | - `docs/evidence/v091-home-mobile.png` |
| 68 | - `docs/evidence/v091-home-zh-desktop.png` |
| 69 | - `docs/evidence/v091-home-zh-mobile.png` |
| 70 | |
| 71 | The four accepted captures have SHA-256 values, in the order above, |
| 72 | `1e6ca263dcae66be0851760ee06675ac825c013c7e93a57f90a7f67abcb63122`, |
| 73 | `af46a2274810d6a6a0bd6c1e2ed74e335678313f1119f513873680764de4cc26`, |
| 74 | `4ae745fa9b93195e7d43a9be36300cb9ec22f5ff6194e05a383732ffce7c8a20`, |
| 75 | and `a00d0e350cf2e2ba7f1eb34f3ba5b94eead20ad09b83b8afddce9e4d8cff5dc5`. |
| 76 | |
| 77 | ## Verification |
| 78 | |
| 79 | ```text |
| 80 | npm run lint |
| 81 | npm test -- --run |
| 82 | 17 files passed; 119 tests passed |
| 83 | npm run check:facts |
| 84 | npm run check:docs |
| 85 | npm run check:deploy-env -- --preflight |
| 86 | CODEWHALE_SOURCE_REVISION=4d197626d72b4bd27e1abf4eed92e86e914414a8 \ |
| 87 | npm run compare:deployed-facts |
| 88 | npx tsc --noEmit |
| 89 | CODEWHALE_SOURCE_REVISION=4d197626d72b4bd27e1abf4eed92e86e914414a8 \ |
| 90 | npm run build |
| 91 | CODEWHALE_SOURCE_REVISION=4d197626d72b4bd27e1abf4eed92e86e914414a8 \ |
| 92 | npx opennextjs-cloudflare build |
| 93 | bash scripts/release/check-versions.sh |
| 94 | git diff --check |
| 95 | ``` |
| 96 | |
| 97 | The credential-free deployed-facts report identified the current live gap as |
| 98 | `unavailable` (`/api/facts` returned HTTP 404), while recording the exact |
| 99 | expected source revision, `0.9.1`, 35 providers, 66 tools, and published |
| 100 | release `v0.9.0`; its receipt says `deploymentAttempted: false`. The OpenNext |
| 101 | Cloudflare worker bundle completed successfully. Production deployment was |
| 102 | intentionally not attempted: the local environment does not contain the |
| 103 | protected Cloudflare account ID or API token, and this task does not authorize |
| 104 | a push or deploy. |
| 105 |