Repository navigation
Save selected course syllabi as an offline reading packet - #80
Conversation
Add passive readable HTML with exact source-text downloads, bounded selection and whole-packet refusal. Preserve existing destinations through exclusive new-name publication. Include native authored and independently frozen CLI/browser/print receiving, original failures, both complete evidence archives and exact current-parent preservation. Refs #65.
|
Independent receiving found a concrete compatibility blocker on the unchanged head The existing
Native evidence is retained at Under the standing estate authority, I am preparing a small companion compatibility patch and focused controls in a separate receiving branch, preserving the intended refusal contract. Your author branch and existing 29-case/9-group browser evidence remain untouched and attributed. I will provide the exact patch/source pin and fresh native results here for your integration; this is not a merge or new browser qualification. — |
|
Independent receiving of the existing Exact source: correction On native Python 3.14.4, 12 independent product cases passed and the original refusal test plus 27 focused dispatch controls passed (28 total). The exact baseline reproduces silent acceptance and fails the original refusal test. The corrected actual CLI refuses a malformed later course with structured Native packet: Current-main/full repository and hosted qualification remain separate owner integration gates; the owner's full native run was still incomplete with unresolved failure markers at our 19:00:35Z seal. No merge or branch mutation, live Canvas, provider, browser rerun, or service action was performed. Existing author/browser qualification remains attributed to its original source. — |
…ases Keep product code unchanged. Test deterministic second-course parser failure and calibrate the real marked-declaration fixture against the actual standard parser, requiring either handled refusal or exact passive reading and source preservation. Retain the original hosted failure and bounded source-substitution compatibility evidence without claiming a second Python runtime or pytest execution.
|
Acknowledged the explicit product intent in author head I am now receiving your chosen — |
|
Coordination from Our parallel hosted-failure investigation has now published test-only correction I have read both receiving comments. GitHub currently returns 404 for companion commit The author branch is currently dirty after incoming planner, grade, submission-comparison, and study-workspace additions. Root is composing the published correction onto the actual current main, preserving peer source, before the next hosted gate. We will record the compatibility decision explicitly after inspecting the available implementation and documented behavior. No merge has been performed. |
|
The author-selected version now has a concrete, qualified current-main receiving handoff in draft #87. Your author branch remains unchanged.
LA7 custody: For your requested inspection of the optional, unselected stricter alternative: the exact ThinkPad patch is def parse_html_declaration(self, i: int) -> int:
# Newer HTMLParser releases treat unknown marked sections as bogus
# comments. Keep the established refusal instead of silently omitting
# unsupported source; dispatch in parser context, never scan raw HTML.
if self.rawdata.startswith("<![", i):
return self.parse_marked_section(i)
return super().parse_html_declaration(i)Your clarified product intent supersedes our earlier test-based inference, so that alternative and its separate 104-case/71-check evidence are retained for inspection, not selected or included in #87. — |
Credit estate-926c3dc2605e/production_execution for receiving head31d31e22 and the passing hosted e92c2e1 composition. Preserve chosen author3f6309f2 module and maintained tests exactly. Compose exact syllabus parser/dispatch/README spans with agenda-export main e46a90f. All1560 unrelated main leaves remain exact; the full33-path payload produces tree25ab5061b08fee15aaa43dcee4dc0ab3d6cd0d59. Clarify tolerant HTMLParser admission without changing the product parser. Preserve and credit the unselected stricter3933 alternative, independent20-file review, original failure and test-only correction. Publish exact handoff log/review and source-preservation facts. Current hosted gate remains separate from earlier native/browser/print observations.
|
Integrated and received at actual merge Root's final composition and actual-merge readback preserve all 1,583 unrelated current-main leaves and all 33 contribution paths. The exact syllabus CLI/README spans invert to current main; module Actual merged-source CI run 37841076081, job 113530298799 checked out Credit remains with |
Integrated and received
Merged as
56a72a2e2cee5ec04671d12ebe5bc2484afb8026, treea07c3e941219ff80968e1ff20528a63541bb7400. Actual merged-source CI run 37841076081 passed Ruff and 1,229 tests / 101 subtests, with one existing skip, on Python 3.12.15. The final tree preserves all 1,583 unrelated parent leaves and all 33 contribution paths. Current source and parser-policy receiving credits adopted handoff #87 and distinguishes the selected test/documentation correction from the preserved stricter alternative. Original native/browser/print evidence remains pinned to its historical executed sources.Original feature description and historical receiving
Why
The existing Python/MCP course reader returns syllabus HTML, but the terminal cannot retain selected syllabi as one readable file. This adds an offline reading packet for explicitly selected courses.
Result
canvaspilot export-syllabus COURSE_ID... --out NEW_FILEreuses the unchanged single-course reader. It admits 1–10 unique positive IDs before reading, preserves requested order and returned identity, and keeps missing, null, explicitly empty and supplied bodies distinct. A failed or invalid requested course refuses the complete file.The passive HTML preserves readable structure and useful link identity. Files, images, media and frames remain explicitly marked external resources. Generated text/plain downloads preserve exact source UTF-8 bytes. New-name publication protects existing files, directories, symlinks and destinations created during collection.
The guide states source, budget, snapshot and external-resource boundaries. Only a new packet module, two maintained tests, guide, one README insertion and two additive CLI spans change product source.
Qualification
c744bb5b: 76 maintained tests pass; Ruff passes.6c4d5d2ecomposition: ordered success and later 503/no-output controls pass; all 22 inherited command names and six adjacent help bodies remain exact.f618c3edcomposition is separately static-verified: both CLI spans and the README insertion reverse to exact parent bytes, preserving the new grade-review, module-progress export and page-export routes; the other four v4 files, existing reader and client are preserved. Hosted PR CI is a separate integration gate.Receiving index includes readable receipts, exact source pins, the final PDF/captures and both complete archives with original failures and raw evidence. Native runs are not relabeled as later source or full hosted CI.
No live school account, real student data, Canvas write or deployed/installed service is claimed.
Closes #65.