4.3 KiB
Session summary: 2026-10-16 (v2.1.0, hotfix 2)
A short Claude Code session that removed ticket subjects from the dashboard (FERPA) and tagged the fix for production. Skylar then deployed v2.1.0 with the fix. Background is in CLAUDE.md, docs/ROADMAP.md, docs/NOTES.md and docs/SECURITY.md. The previous session (2026-10-15) added per-user settings, the email domain check and the security document; its details are in the git history and NOTES.md.
Where things stand
- Branch
v2.1.0is pushed and clean. Its latest commit isd5a1080, "Remove ticket subjects from SDP queries and the page". - That commit is tagged
v2.1.0-prod-hotfix2(annotated) and pushed. - Production runs v2.1.0 with hotfix 2, deployed by Skylar on 2026-10-16 and working. The production
.envhasALLOWED_EMAIL_DOMAINS, and the compose file has thesdp-data:/app/datavolume. The sign-in gap from v2.0.0 is closed in production. - The earlier tags are
v2.0.0-prod,v2.1.0-prodandv2.1.0-prod-hotfix(2f137af, the email domain check).
What this session did
Ticket subjects removed (commit d5a1080)
- Why: subjects can name students or describe their situation, which is a FERPA risk.
- Server (
src/tickets.js): the closed feed and unassigned queries no longer putsubjectinfields_required, and neither returned object includes it. The returned objects are built field by field, so a subject SDP sends anyway is dropped before it leaves the server. - Page (
src/public/index.html): feed cards now lead with the ticket number (monospace, classticket-id), with the technician and closing time below. The hidden unassigned debug table lost its Subject column. The unused.subjectand.subject-cellCSS is gone. - Docs:
docs/SECURITY.md: section 5 lists what the page receives and has a "No ticket subjects" point. Open item 1 is updated: hosting approval is still needed, but now covers staff and operational data only. "How this was checked" has a line for this test.docs/NOTES.md: a decision not to addsubject,descriptionor other free-text fields to any query or response without a new review.README.md: the debug list description.
Verified
- Server, with axios stubbed so SDP returned a subject on every ticket: neither query asked for
subject, and nothing in the feed, unassigned or state output contained it. - Page: the real
renderTicketandrenderUnassignedList, run in Node. Both rendered without subjects, and escaping still works. - Skylar's own test before tagging, then the production deploy, which is working.
- Not verified by Claude: a screenshot of the new card.
Gitea push failures (not fixed)
The first push of the session failed with remote: Verify and Authentication failed, and the retry worked. This happens now and then. The likely cause: Git Credential Manager 2.6.1 (the generic provider for git.vfsh.dev) signs in with Gitea's OAuth app. It stores an access token that expires after an hour (Gitea's default) and sends it without checking. Gitea refuses it, GCM throws it away, and the next push gets a fresh token. Skylar plans to switch the remote to SSH. Until then, retry a failed push once.
Next steps
- Technician check at sign-in (the ROADMAP item). Ask SDP whether the signed-in user is a technician. That probably needs a users or technicians read scope; confirm the exact scope name and endpoint in Zoho's SDP Cloud API docs. A new scope means everyone signs in again. It would also allow real pick lists for technicians. Nothing has been researched yet.
- Switch the Gitea remote to SSH (Skylar).
- Work through the open items in
docs/SECURITY.md, starting with MCCS IT approval for the hosting and the non-technician test. - Carried over from earlier sessions:
- check that the token renews after an hour
- README screenshots, now showing the cards without subjects
- links to Zoho's documentation for the web sign-in flow
- the status table scrolling sideways (see
NOTES.md) - fill in campus satellites and confirm the zip codes in
src/places.js
To pick up
Start a Claude Code session in this repo and say something like:
Read docs/SESSION.md. Let's add the SDP technician check at sign-in: first find the right Zoho scope and endpoint.