PERSONAL CANON PC03 SOURCE NOTES PR219
Research date: 2026-08-09
Presentation-only rendering. Counterpedia preserves this document’s source Markdown bytes exactly and formats them for reading here. This does not admit the document, verify its claims, or convert it into a governed Counterpedia entry.
Counterpedia PR #219
Research date: 2026-08-09
GitHub fixture
Repository: thelaplage/counterpedia
PR: #219 — fix(wiki): fail closed on non-renderable admitted compositions
Merged: 2026-08-08T19:52:10Z
PR head: f86a643effc0920c152933e59b9337b4ec0c00f7
Merge commit: dfa418edc6b1f853d1e85703f888f6c3db14214c
PR-described defect
The §11 compatibility gate correctly returned non_renderable.
Downstream:
article seam;
question-dispute seam
collapsed non_renderable to null.
The route treated that null like “no admitted composition” and fell through to the legacy article.
Result: an older legacy body could appear when an admitted governed composition had become non-renderable because its basis was refused/absent.
PR fix
Three states:
ABSENT
no admitted composition
→ legacy allowed
RENDERABLE
admitted + compatible
→ governed composition
HELD
admitted + non_renderable
→ hold surface
→ legacy prohibitedPublic code evidence in PR patch
lib/counterpedia/articleComposition.ts
Before: ResolvedArticleV01 | null
After: ArticleCompositionOutcome with:
absentrenderableheld
Key semantic: non_renderable returns { state: "held" }.
Route evidence
app/(site)/wiki/[slug]/page.tsx
Added:
held-specific metadata;
hold surface;
selectWikiSurfaceKind;explicit rule that HELD wins over legacy fallback.
Test evidence
tests/wikiCompositionHold.test.tsx
The test file states and proves:
absent → legacy;
compatible admitted → governed article;
superseded_framed → governed historical framing;
refused bound claim → HOLD; legacy body MUST NOT render;
unpermitted absent required claim → HOLD; legacy MUST NOT render;
held question-dispute → HOLD;
held metadata must not borrow legacy article description.
Design use
PC-03 treats these public bytes as the governed project-history substrate.
The three builders' private notes/debugging histories are synthetic.
No synthetic private memory should be represented as historical GitHub fact.