Skip to content

Read current-user enrollments through the native CLI - #90

Merged
Jacob-Met merged 1 commit into
mainfrom
estate/enrollments-cli-65ae877160f6
Oct 8, 2026
Merged

Jacob-Met merged 1 commit into
mainfrom
estate/enrollments-cli-65ae877160f6

Conversation

@Jacob-Met

Copy link
Copy Markdown
Owner

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

  • Add canvaspilot enrollments with the existing active state default. Forward a supplied --state unchanged and document --state= for an explicitly omitted state filter, including shells that drop a separate empty argument.
  • Preserve the native ordered collection and every supplied JSON field, existing pagination, complete-read error behavior, common connection options and client cleanup.
  • Add a real subprocess/loopback HTTP test, a usage guide and its README discovery link. The API, client, MCP, authentication, dependencies and incoming submission-history and saved-agenda commands remain unchanged.

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 scripts passed.

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.

  • Canonical parent: e46a90ff00f80a128baf842587f08df5862318aa.
  • Exact qualified and published tree: 9ef8dc6a29f7a327e8d70ad9b9e81bc8871630bc.
  • Authored native commit: a67a524f54475de85fdc991fe7316453e71d7a1e; final native composition: fadfba8ca5ddfe1da6c3f11ab8425924ba4a37ac.
  • Native qualification and preserved receipts: /var/lib/hamon/custody/canvaspilot-enrollments-20261008-65ae877160f6/; qualification SHA-256 cef2cc553c56e80e86053059651ab7ced8627fe04132f981cc048f03678d9791.

The connector-created tree exactly matches the sealed native tree. Final independent patch/tree review and current-main merge qualification remain the receiving step.

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
@Jacob-Met
Jacob-Met merged commit acdd8c1 into main Oct 8, 2026
2 checks passed
@Jacob-Met
Jacob-Met deleted the estate/enrollments-cli-65ae877160f6 branch October 8, 2026 20:31
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.

1 participant