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 <[email protected]>
This commit is contained in:
BillyOutlastandClaude Opus 5.5 committed 2026-10-11 15:16:54 -04:00
1 parent b99be6fc27
commit 823d19c999
4 files changed
+33 -20

No files matched your search

+16 -10
View File
@@ -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 <upstream-checkout-or-extracted-asar>
# Apply everything to a pristine upstream checkout (then build it):
node scripts/apply-patches.mjs --target <upstream-checkout>
node scripts/apply-patches.mjs --verify-only --target <patched-checkout> # 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 <extracted-asar-dir>
```
@@ -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.
+7 -4
View File
@@ -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 <pristine-upstream>` 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 <donor-checkout>` 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)
+5 -3
View File
@@ -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)
+5 -3
View File
@@ -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
<checkout>` 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