Repository navigation
Conversation
Find Unicode-casefold text in returned page titles and available bodies, retain ordered exact rows and duplicates, and refuse partial output after a collection error. Keep missing, null and locked bodies explicit. Preserve all current syllabus, announcement and enrollment paths. Retain the original absence witness, 19 scoped native cases closed across the recorded 18-pass run and one focused correction, independent actual-client receiving, source-composition proof and original setup/expectation failures. Native partial source custody is distinguished from canonical ancestry. No live Canvas, install or deployment claim. Refs #92
This was referenced Oct 8, 2026
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.
Page listing can omit bodies, so it cannot answer where a phrase appears across a course’s pages. This adds
canvaspilot find-pages 42 --text "field journal", which requests bodies through the existing paginated reader and returns ordered matches in supplied titles and available cleaned body text.The command uses literal Unicode casefold matching. It retains exact original rows, duplicate page identities and the matching field names. Missing, null and locked bodies are reported explicitly; block-editor attributes are preserved but are not silently treated as searchable HTML. A later-page error or malformed collection refuses the whole result without partial successful stdout.
The six source paths add the helper, parser/dispatch, maintained tests and guide. Existing client, API, authentication, broker, dependencies and workflows are unchanged. Current syllabus, announcement and enrollment contributions and all 1,614 unrelated parent leaves are preserved.
Validation is documented in the receiving index:
The packet retains initial product/setup/expectation failures. Gate02 lost its final controller status during a remote-session outage; its durable JUnit/stdout and reconciliation remain explicit. The independent raw run exited 1 on its own inherited page-size expectation, then completed remaining assertions on the same captured results without new HTTP. These are not relabelled as clean full-run exits.
Exact head
c36264e588ef7ec007d0ed5ee62a38fc5ed9b40f, sole parent56a72a2e2cee5ec04671d12ebe5bc2484afb8026, full treedf52f973849155aef31151fa5072284feed179df; all 1,626 published leaves and modes were read back. The six evidence paths include the complete selected 246-file source/receiving archive with every member checksum.Native receiving used Python 3.14.4 and the existing environment. Hosted CI is a separate gate. No live Canvas account, installation or deployment was performed. Root retains final source review and merge.
Closes #92.