mirror of
https://github.com/Heretek-AI/GDevelop-Unlocked.git
synced 2026-11-07 02:45:58 -10:00
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:
1 parent
b99be6fc27
commit
823d19c999
4 files changed
+33
-20
No files matched your search
@@ -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
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
Reference in new issue
Block a user