From 823d19c99960be42456bfa4157dd6469a9ca0a5c Mon Sep 17 00:00:00 2001 From: BillyOutlast <172061051+BillyOutlast@users.noreply.github.com> Date: Sun, 11 Oct 2026 15:16:54 -0400 Subject: [PATCH] Docs: correct stale patch counts, pin wording and install paths 14 patches (not 11), Tier-2 glue is 07-14, no donor pin exists, the extractor was deleted, and patches apply to source checkouts only. Co-Authored-By: Claude Opus 5.5 --- README.md | 26 ++++++++++++++++---------- RETIREMENT.md | 11 +++++++---- packages/ai-studio/README.md | 8 +++++--- patches/README.md | 8 +++++--- 4 files changed, 33 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 60e30bf..e67c401 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,12 @@ Three delivery mechanisms, all applied onto stock upstream GDevelop: | Mechanism | Lives in | What it does | |---|---|---| | **Tier-1 patches** (`01`–`06`) | `patches/` | Curated minimal hunks: subscription/capability unlocks, checker no-ops, logo/watermark + preview/debugger gate removal, Electron loader line | -| **Tier-2 glue** (`07`–`11`) | `patches/` + `packages/ai-studio/` | Fork's BYOK AI routing ported as patches; runtime (`CustomAIClient`, 12 Studio modules) extracted verbatim into `packages/ai-studio/` and overlaid by the driver | +| **Tier-2 glue** (`07`–`14`) | `patches/` + `packages/ai-studio/` | Fork's BYOK AI routing ported as patches; runtime (`CustomAIClient`, 12 Studio modules) extracted verbatim into `packages/ai-studio/` and overlaid by the driver | | **Launcher hook** | `launcher/` | Main-process preload injection + `fetch`/XHR spoof + `webRequest` backstop, so a stock build unlocks at runtime | -Patches `07/08/11` are **curated forward-ports** (see `patches/REBASE.md`); -`09/10` are verbatim fork deltas. Full audit trail: `AUDIT_REPORT.md`. +Patches `07/08/11/13/14` are **curated forward-ports** (see +`patches/REBASE.md`); `09/10/12` are verbatim deltas (`09/10` purely +additive). Full audit trail: `AUDIT_REPORT.md`. ## Quickstart @@ -23,10 +24,12 @@ Patches `07/08/11` are **curated forward-ports** (see `patches/REBASE.md`); npm test # full suite (unit + integration), offline node scripts/apply-patches.mjs --check # seam gate only, no filesystem changes -# Apply everything to a pristine upstream checkout: -node scripts/apply-patches.mjs --target +# Apply everything to a pristine upstream checkout (then build it): +node scripts/apply-patches.mjs --target +node scripts/apply-patches.mjs --verify-only --target # read-only re-check -# Release-asis path (bundled code — source hunks can't apply): +# Stock release artifact (bundled code — source hunks can't apply; +# Tier-1 only, see launcher/README.md): node scripts/inject-launcher.mjs --appdir ``` @@ -36,9 +39,9 @@ commit. Nothing else external is needed — this repo is fork-independent. ## Layout -- `patches/` — 11 patches + `README.md` (per-patch targets) + `REBASE.md` +- `patches/` — 14 patches + `README.md` (per-patch targets) + `REBASE.md` - `scripts/` — `apply-patches.mjs` (driver), `generate-tier1/2-patches.mjs` - (generators), `inject-launcher.mjs` + (generators), `inject-launcher.mjs`, `strip-updater-feed.mjs` (release) - `launcher/` — `heretek-hook.cjs`, `preload-unlock.cjs`, `unlock-payloads.cjs` - `packages/ai-studio/` — extracted Tier-2 runtime + `dev-harness/` mock provider - `packages/unlock-shim/` — routing/leak-guard invariants (reference impl) @@ -48,13 +51,16 @@ commit. Nothing else external is needed — this repo is fork-independent. ## CI -- `seam-tests` — full `npm test` + patcher gate against pinned upstream/fork commits +- `seam-tests` — full `npm test` + patcher gate against the pinned upstream commit - `e2e` — release-artifact smoke under `xvfb` (`tier1-smoke`), OpenAI-contract check against the committed mock (`byok-mock`), real Ollama on schedule (`byok-ollama`) +- `release` — manual dispatch: patched source → full build → smoke gate → + artifact (and a GitHub release only when `publish=true`) ## Status & provenance -- Upstream baseline and donor pin: `UPSTREAM_BASELINE.json` +- Upstream baseline: `UPSTREAM_BASELINE.json` (the only pin — there is no + donor pin; `tests/patches/pins.test.mjs` keeps the workflows on it) - Retirement plan for the donor fork: `RETIREMENT.md` - Latest audit verdict: **conditional PASS** (`AUDIT_REPORT.md` §7) — remaining work is live CI/model/browser proof, not code changes. diff --git a/RETIREMENT.md b/RETIREMENT.md index d31602f..1057da5 100644 --- a/RETIREMENT.md +++ b/RETIREMENT.md @@ -12,7 +12,8 @@ was deleted. What remains is owner-side archival of the old repo - [x] `npm test` green with the fork checkout absent (no test reads any `FORK_DIR`; self-contained `MANIFEST.json` hashes pin the runtime). - [x] `node scripts/apply-patches.mjs --target ` green - (all 11 patches + launcher sync + Tier-2 overlay + marker verify). + (all 14 patches + launcher sync + Tier-2 overlay + marker verify; + re-verified 2026-10-11, now also in-suite via `tests/patches/apply.test.mjs`). - [ ] Desktop smoke on the patched build: logo uncheck, watermark uncheck, hot reload x17, wifi preview, debugger open (issue #2). - [ ] Desktop E2E: `http://localhost:11434/v1` generation + subagent @@ -29,9 +30,11 @@ was deleted. What remains is owner-side archival of the old repo Heretek-AI/GDevelop-Unlocked. Donor commit f7d450a1d9aa068e33c0a0c9a3f9caaee3701f2f.` 3. After archiving, Tier-1 ships only as `patches/` + `launcher/` (Phases 2–3); Tier-2 only as versioned `packages/ai-studio` - (Phase 4). Any future fork-sync need is a `scripts/extract-tier2.mjs` - re-run + `scripts/generate-tier2-patches.mjs` regeneration, reviewed - as a normal PR — never a merge treadmill. + (Phase 4). Any future donor-sync need is a curated forward-port per + `patches/REBASE.md` (plus, for the additive 09/10 only, an explicit + `scripts/generate-tier2-patches.mjs --fork ` run), + reviewed as a normal PR — never a merge treadmill. The extractor + (`scripts/extract-tier2.mjs`) was deleted at cutover. ```bash # 1. (in the fork checkout, final state) diff --git a/packages/ai-studio/README.md b/packages/ai-studio/README.md index c1a48ac..7d0f4cd 100644 --- a/packages/ai-studio/README.md +++ b/packages/ai-studio/README.md @@ -17,9 +17,11 @@ there is no donor checkout anywhere in build, test, or CI paths. ## Wiring -Import rewiring is limited to `packages/unlock-shim/generation-shim.mjs` -(routing predicates + fail-closed leak guard) plus the glue patches -`07`–`11` (`patches/REBASE.md` records how the forward-ports were built). +The glue patches `07`–`14` are the only rewiring (`patches/REBASE.md` +records how the forward-ports were built). Patch 07 inlines the routing +predicates; `packages/unlock-shim/generation-shim.mjs` is their tested +reference implementation, not a shipped import (see its README, +"Duplication contract"). ## Desktop E2E (requires a built app — procedure, not automation) diff --git a/patches/README.md b/patches/README.md index 8dbd4c2..3f6257f 100644 --- a/patches/README.md +++ b/patches/README.md @@ -1,8 +1,10 @@ # patches/ — Tier-1 entitlement unlocks (Phase 2, issue #2) -Stock upstream `app.asar` + these hunks = fork parity for Tier-1, with no -205-file merge treadmill. Applied by `scripts/apply-patches.mjs` -(extract -> patch -> repack); every hunk is gated by the Phase 1 seam suite. +Stock upstream **source** + these hunks = fork parity for Tier-1, with no +205-file merge treadmill. Applied by `scripts/apply-patches.mjs --target +` before building; every hunk is gated by the Phase 1 seam +suite. They cannot apply to a release `app.asar` (bundled renderer) — +that path is launcher-only, see `launcher/README.md`. ## Files