Skip to content

Reader 0.2: integrated literary analyzer, installable CLI and five-route site - #274

Merged
3 commits merged into
masterfrom
scrip-site-010-reader-integration
Oct 21, 2026
Merged

3 commits merged into
masterfrom
scrip-site-010-reader-integration

Conversation

@andy-zen-dev

@andy-zen-dev andy-zen-dev commented Oct 10, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #273. Integrates #268, #270 and #272; refs #267, #269, #271.

Product outcome

One substantial repository-based Reader 0.2 preview, not another standalone ZIP/fork:

  • Install scriptorium-reader 0.2.0a1 and use scriptorium analyze, diagnostic, and site (also python -m scriptorium). Python >=3.13; no runtime dependencies.
  • Local UTF-8 manuscript -> all 29 unchanged metric rows -> JSON, readable offline HTML or source/profile-attributed CSV.
  • HTML contains real-text metric labels, a four-value overview, round-trip float representation, keyboard-accessible tables and explicit null/scientific limits.
  • Canonical site combines the corrected SCRIP-SITE-007: readable offline full-work diagnostic reports #268 renderer with SCRIP-SITE-008: canonical full-work report and reader-first homepage #272: four existing evidence routes plus Anna Karenina's 28-field historical full-work report and a working homepage action. Frozen bytes and the SHA-256 publication allow-list are unchanged.
  • Preserve the original package public API and morphology modules. Keep the old detailed README as RESEARCH_INDEX.md; use a reader-first main README and installation guide.

Review findings fixed

Exact-head COMMENT reviews were published on all three prior open PRs. #270 had two reproduced findings: a FIFO could block during unbounded Path reads, and operational errors exposed private paths. The integrated reader bounds manuscript/dictionary/diagnostic input, rejects special files and final-component symlinks, and reports controlled path-free errors. Atomic create-only output remains intact. CSV neutralizes formula-like text, including Unicode prefixes, without changing numeric cells.

Verified on the final head

Head: 71d71f7b18e2170c28be49856668914ebeef1eeb
Master base: abe7bb889ef98437ba9faef5a79b023499556991
Change: 2 commits, 35 files.

  • 23/23 pull-request workflow runs: SUCCESS on this exact head. These are the new integrated runs, not reused checks from the old PRs.
  • 736 canonical Python tests: PASS. Full suites run in the Pages, package and provider workflows.
  • Reader package CI: wheel build, clean --no-index --no-deps installation, public API check and all three commands executed outside the source checkout: PASS.
  • Pages CI: actual six-HTML-page build (homepage + five routes), byte-identical second build and Pages artifact creation: PASS. The deploy job is intentionally skipped for the PR.
  • Pinned pylem provider CI: all three jobs pass, including native provider smoke and frozen-work sidecar diagnostics. No morphology substitution or parity claim.
  • Downloaded actual Pages artifact 11668407666 and checked all 23 local links/fragments across six HTML pages: PASS. Site bytes are unchanged between the first and final commit.
  • Initial package smoke failed because its site output was outside the canonical repo/build boundary. Commit 71d71f7 fixes the test destination using a unique disposable build child; no renderer safety check was relaxed.
  • Browser navigation of the actual CI artifact returned ERR_BLOCKED_BY_ADMINISTRATOR. VISUAL_NOT_VERIFIED; no screenshots or visual PASS. No alternate browser route or policy bypass attempted.

Delivery and acceptance boundary

This PR targets master directly, not an unmerged feature branch. Old #268/#270/#272 remain open as provenance until the integrated result is accepted; no old branch is force-pushed or deleted. #273 and the branch's compact queue make this the sole integration path.

PR_CREATED / BUILT / CI_PASS; NOT_MERGED / NOT_DEPLOYED. Ready for later fresh acceptance, not self-approved. Do not merge this semantic change in its authoring run. Actual repository gates remain mandatory. M2 is still 0/5; no M1-M5 completion, corpus admission, tolerance change, external registry publication or Pages activation. Unintegrated EPUB/batch prototypes are deliberately not advertised as shipped features.

Interactive review/issue/source writes worked in this owner-requested session. This does not establish that the hourly execution environment's earlier restrictions have disappeared. Scheduler, access and administrative settings were not changed.

Refs #273, #267, #269, #271. Integrate the exact reviewed implementations
from #268 (50fbb9b), #270 (752f3c4) and #272 (610dc80) into one master-based
delivery. Preserve the canonical public API and all historical artifacts.
Add installable analyze/diagnostic/site commands, source-free CSV, reader
labels, numeric fidelity, bounded input and private CLI errors. Keep the
Pages deployment interlock and scientific acceptance gates unchanged.
Add focused regressions and full-repository installed-package CI.
No same-run merge acceptance; old PRs remain until this integration passes.
Refs #273. The full 736-test suite and Pages double build passed, but
installed smoke used a temporary output outside the allowed repo/build
tree. Put only derived site output under a unique disposable build child;
keep installed imports and manuscript processing outside the checkout.
Do not relax the renderer's output safety checks.
@andy-zen-dev
andy-zen-dev marked this pull request as ready for review October 10, 2026 11:25
Refs #273. Preserve last valid site on write failures, fail closed when
atomic replacement is unavailable, and reject competing first writes.

Copy link
Copy Markdown
Collaborator Author

Superseded by #276 for later acceptance, following the owner's 2026-10-18 cleanup request and the prospective claim update on #273/#275. #268/#272 are now merged into master, not pending dependencies.

The green checks in this PR body belong to older head 71d71f7..., not the current unchanged 62e6c078cb70ec77775007a1668fa0c3ede4f5fa, whose syntax regression produced 15 failed workflows. Do not merge this old head or treat its stale body as current CI evidence.

#276 preserves this entire Reader head as a commit parent, repairs the complete renderer's staged-block indentation, adds crash-safe publisher regression coverage and preserves the unfinished two-work gallery. New exact head d81aa3a46c0125561a1ba610d51a6cf9f06df0c4: 23/23 workflows successful; 759 canonical tests; installed wheel/CLI and deterministic canonical-site/gallery verification passed. Real browser-route verification remains blocked, and no deployment or M2 progress is claimed.

Converting this PR to draft leaves one active review path without discarding history. Keep it until the successor receives fresh later-run acceptance; do not continue a competing integration here. No branch deletion or same-run merge of the repaired change.

@andy-zen-dev
andy-zen-dev marked this pull request as draft October 18, 2026 09:07
@andy-zen-dev andy-zen-dev closed this pull request by merging all changes into master in 03d122a Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SCRIP-SITE-010: integrate the reader product into one installable delivery

1 participant