Repository navigation
Let App say which clock a time was set on, and stop forgetting the session - #2
Merged
Merged
Conversation
Four things the operator app got wrong at the edges, none of which the contract or the API was at fault for. Times. A datetime-local input carries no timezone, so the browser reads what was typed as local wall clock while the vault stores the instant it resolves to. The reading was correct and nothing said so: an operator in UTC+1 typing 14:30 wrote 13:30 into the contract with no way to notice. Both time fields now name the zone and echo the UTC that gets stored, and the review step shows the instant twice, once on each clock. The offset is read at the chosen time rather than at now, so a January release picked in July is not an hour out. Recurring and sweep never showed their start time in the review at all, on a step that claims to be exactly what the contract will enforce; they do now. Sessions. signedIn was component state and the session is an HttpOnly cookie, so every reload rendered read-only while the browser was still holding a perfectly good session, and asked an already signed-in operator to sign in again. GET /api/session reports on that cookie and nothing else, rate limited with the other public reads, no chain read, and it cannot mint a session of its own. Asked once on mount; a failure leaves the app signed out, which is the safe way to be wrong. Links. The app wordmark now goes back to the landing page, and the landing page offers the app from its nav as well as the hero. Both routes in are injected from the same APP_URL behind the same switch, so setting it to "" still closes every door rather than leaving a dead one. The narrow-screen rule kept Repo and dropped everything else; it now keeps both links that leave the page. Also repairs the close glyph in the create modal, which a PowerShell -replace round trip had left as mojibake, and moves the README test count to the measured 337.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was previously deployed
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.
Four things the operator app got wrong at the edges, none of which the contract or the API was at fault for.
Times. A datetime-local input carries no timezone, so the browser reads what was typed as local wall clock while the vault stores the instant it resolves to. The reading was correct and nothing said so: an operator in UTC+1 typing 14:30 wrote 13:30 into the contract with no way to notice. Both time fields now name the zone and echo the UTC that gets stored, and the review step shows the instant twice, once on each clock. The offset is read at the chosen time rather than at now, so a January release picked in July is not an hour out. Recurring and sweep never showed their start time in the review at all, on a step that claims to be exactly what the contract will enforce; they do now.
Sessions. signedIn was component state and the session is an HttpOnly cookie, so every reload rendered read-only while the browser was still holding a perfectly good session, and asked an already signed-in operator to sign in again. GET /api/session reports on that cookie and nothing else, rate limited with the other public reads, no chain read, and it cannot mint a session of its own. Asked once on mount; a failure leaves the app signed out, which is the safe way to be wrong.
Links. The app wordmark now goes back to the landing page, and the landing page offers the app from its nav as well as the hero. Both routes in are injected from the same APP_URL behind the same switch, so setting it to "" still closes every door rather than leaving a dead one. The narrow-screen rule kept Repo and dropped everything else; it now keeps both links that leave the page.
Also repairs the close glyph in the create modal, which a PowerShell -replace round trip had left as mojibake, and moves the README test count to the measured 337.