The wrapper, and the store that will not take it - #84
Merged
Conversation
PLAN.md §Track B says "Capacitor iOS, then Android". On the licences this repo actually vendors that order inverts: Android is reachable and the App Store is the blocked one. A GPL'd binary on Apple's store needs a §7 additional permission from every copyright holder. Hifth cannot assemble one. The Quranic Arabic Corpus grants the GPL and then says CHANGING IT IS NOT ALLOWED — a §7 grant is a change to the terms and only Kais Dukes can make it. quran-tajweed is CC BY 4.0, whose §2(a)(5)(B) forbids the technological measures FairPlay applies. KFGQPC's own terms are still unread (board item #55), and a store submission is exactly the context where that stops being deferrable. Three things fell out of writing it down, none of them fixed here: - assets/adj/** carries span/toSpan values computed by sharedRuns out of the GPL'd QAC morphology (build-adjacency.mjs:45, :287, :342). LICENSES.md:17 names only Waqar144's terms. Wrong today, independent of Track B. - Track B's payload has narrowed to one load-bearing promise. The corpus bundling is done by Loop 6b, the iPad spread became a web concern, and navigator.share exists. What survives is iOS deep links into an installed app — on the platform whose store is the blocked one. - ShareSheet.tsx builds share URLs from window.location.origin, which under a wrapper is capacitor://localhost/. Every shared hop link would be unopenable by the recipient. Measured while here: the whole corpus is 27.87 MB gz across 1,584 files, which retires the delivery plan's On-Demand-Resources concern outright. Nothing is built and nothing should be until §⑦ ② is settled by someone qualified. This file is the scoping of record and the reason for the gate. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EuhvbUKjGesE3uMhjCzBGt
docs/issues.json gains the four rows from the new doc's §⑦, so the register and the document agree the way gate:issues requires: adj-shards-have-two-upstreams confirmed defect — LICENSES.md:17 gpl-and-the-app-store open risk — needs a lawyer track-b-order-is-unachievable open defect — blocked on the above track-b-payload-has-narrowed open question — blocked on web v1.0 The first is confirmed rather than suspected because the code path is cited and checkable: build-adjacency.mjs imports sharedRuns from morphology.mjs and writes its output into every shard. The second is owned by the user, not the agent — a non-lawyer reading licence text is not the standard the rest of this repo holds itself to, and saying so is the honest form of the finding. docs/map.json points provenance at the doc. That feature's gates all satisfy the obligations of a static site, where the browser is handed the whole bundle and §4–6 are discharged by construction. None of them says anything about a store binary, which is a different distribution under the same licences — so the pointer is where a reader learns the gates stop. docs/issues.md is generated (pnpm issues:doc). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EuhvbUKjGesE3uMhjCzBGt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PLAN.md§Track B says "Capacitor iOS, then Android". On the licences this repo actually vendors, that order inverts: Android is reachable and the App Store is the blocked one. This PR is the scoping doc that says so, plus the four register rows that keep it honest. No code, and none should be written until ⑦ ② is settled.Why the order cannot hold
A GPL'd binary on Apple's store needs a §7 additional permission from every copyright holder. Signal, OsmAnd and VLC's eventual settlement all ship that way. Hifth cannot assemble one:
packages/etl/data/roots/) grants the GPL and then says copies may be distributed but "CHANGING IT IS NOT ALLOWED".SOURCES.mdalready records how the repo satisfies both readings for a website — vendor verbatim, derive at build time. That resolution does not extend to a §7 grant, because a §7 additional permission is a change to the terms and only the holder can make it.assets/skins/**) is CC BY 4.0; §2(a)(5)(B) forbids the Effective Technological Measures FairPlay applies. Narrower — the skin is one edition among several and could be dropped from a store build. The QAC-derived data cannot.Three things that fell out of writing it down
None of them are fixed here, and each one says why.
LICENSES.md:17names one of two upstreams.assets/adj/**is bucketed under Waqar144's mutashabihat terms alone.build-adjacency.mjs:45importssharedRunsfrommorphology.mjs(QAC morphology),spansOf(:287) calls it, and:342writes the result into every shard asspan/toSpan. Under the same strict reading of "derivative" this repo applies to itself elsewhere, those shards are a GPL derivative. Wrong today, independent of Track B — registered as confirmed.Track B's payload has narrowed to one promise. Corpus-bundling was done by Loop 6b's juz packs; the iPad spread became a web concern (
PLAN.md:1038);navigator.shareexists. What survives is iOS deep links into an installed PWA — on the platform whose store is blocked.PLAN.md:1297also cites research §5 for that caveat; §5 is the eviction section and §6 is the deep-link one.ShareSheet.tsxwould emit unopenable links. It builds the share URL fromwindow.location.origin + pathname, which under a wrapper iscapacitor://localhost/. Every shared hop link would fail for the recipient — including in the sender's own browser. Small fix, written down rather than made, because a change with no caller is a change nobody will test.Measured, not estimated
pnpm gate:assetson this tree: 27.87 MB gz across 1,584 files. Under every store threshold that would have forced staged delivery, which retires the delivery plan's On-Demand-Resources concern outright.The registers
adj-shards-have-two-upstreamsgpl-and-the-app-storetrack-b-order-is-unachievabletrack-b-payload-has-narrowedgpl-and-the-app-storeis user-owned deliberately: everything above is argued from licence text by a non-lawyer, and "I read the licence" is not the standardgate:*holds anything else to.docs/map.jsonpointsprovenanceat the doc — that feature's gates discharge a static site's obligations by construction, and a store binary is a different distribution under the same licences.Deliberately not done here: editing
LICENSES.md:17orPLAN.md's order and citation. A roadmap edit that changes a loop's stated order should be its own decision with its own record, not a footnote to a scoping doc.make cigreen —gate:issuesOK (83 indexed across 12 registers, the new doc being the twelfth),gate:mapOK (22 features, 150 pointers),gate:budget117.9 KB gz / 150 KB, +0.0.🤖 Generated with Claude Code
https://claude.ai/code/session_01EuhvbUKjGesE3uMhjCzBGt