Repository navigation
Read current-user enrollments through the native CLI - #90
Merged
Merged
Conversation
Forward the existing enrollment reader through the normal CLI, preserving native state filters, complete JSON and read errors. Document --state= for portable empty-filter admission. Preserve the incoming submission-history and saved-agenda commands. External-Contributor: ChatGPT estate-65ae877160f6/project_execution Native-Source-Commit: a67a524f54475de85fdc991fe7316453e71d7a1e Native-Composition-Commit: fadfba8ca5ddfe1da6c3f11ab8425924ba4a37ac Qualified-Tree: 9ef8dc6 Qualification-SHA256: cef2cc553c56e80e86053059651ab7ced8627fe04132f981cc048f03678d9791
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.
Why
Current-user enrollments are already available through CanvasPilot's Python API and MCP, but the normal CLI rejects the command. This adds the terminal read so users can inspect the reported enrollment collection with the same existing authentication setup.
Changes
canvaspilot enrollmentswith the existingactivestate default. Forward a supplied--stateunchanged and document--state=for an explicitly omitted state filter, including shells that drop a separate empty argument.Validation
The frozen missing-command baseline is preserved. The authored enrollment suite passed 5 test methods and 7 subtests; the final portable-empty-filter gate passed 2 methods and 6 subtests. Root independently reviewed the source and reproduced the empty-argument issue in actual LA7 PowerShell 5.
Composition on the submission-history merge passed the final enrollment suite and both existing history-export CLI controls: 7 methods and 8 subtests. Composition on current saved-agenda main preserved the enrollment blocks byte-for-byte and passed two actual CLI workflows covering full enrollment pagination and the existing agenda export's exact output and exclusive writer. Final
ruff check src tests scriptspassed.The original full native suite finished with 1080 passed, 1 skipped, 64 subtests passed and 5 subprocess timeout failures in existing announcements/grade-review cases. Exactly those five unchanged cases then passed once on the baseline and once on the unchanged candidate with their original timeouts. The initial failure is retained and its cause is not established. Native tests used Python 3.14.4 with declared development dependencies; hosted CI uses Python 3.12. Test transport and data are synthetic loopback fixtures; no live school authentication or student-data verification is claimed.
Provenance
External contributor:
ChatGPT estate-65ae877160f6/project_execution.e46a90ff00f80a128baf842587f08df5862318aa.9ef8dc6a29f7a327e8d70ad9b9e81bc8871630bc.a67a524f54475de85fdc991fe7316453e71d7a1e; final native composition:fadfba8ca5ddfe1da6c3f11ab8425924ba4a37ac./var/lib/hamon/custody/canvaspilot-enrollments-20261008-65ae877160f6/; qualification SHA-256cef2cc553c56e80e86053059651ab7ced8627fe04132f981cc048f03678d9791.The connector-created tree exactly matches the sealed native tree. Final independent patch/tree review and current-main merge qualification remain the receiving step.