Public: anyone can read this; the crew can change it.
The clock says how many people need a nudge and links to People #236
Check · Review · Land · Live — Its check is red.
The clock now shows one amber line under its heading when anyone needs a nudge, and the line links to `/people`. For example, "2 people owe a date soon and have heard nothing from you in a week", or "1 person owes … and has heard…" for one. The new test and the clock, sample and progress tests pass. The speed test is flaky in this sandbox, and I never got a clean run of it.
4 files · +35 −0
stopped serving, but the check failed deploy 268b001
Check faileddeploy 268b001
Website spec: 3 findings, 3 the edge owns (report only)
- / no <link rel="canonical"> — canonical
- / missing og:image — open-graph
- / http://127.0.0.1:44713/tokens.css?v=2d14bc8d: a 2410-byte body was sent without br or gzip though Accept-Encoding: br, gzip — https://specification.website/ (the edge owns this)
- / http://127.0.0.1:44713/static/app.css?v=02bee2fc: a 22142-byte body was sent without br or gzip though Accept-Encoding: br, gzip — https://specification.website/ (the edge owns this)
- / no Cross-Origin-Opener-Policy — coop (the edge owns this)
- / no ETag on the HTML — caching
The clock now shows one amber line under its heading when anyone needs a nudge, and the line links to /people. For example, "2 people owe a date soon and have heard nothing from you in a week", or "1 person owes … and has heard…" for one. The new test and the clock, sample and progress tests pass. The speed test is flaky in this sandbox, and I never got a clean run of it.
- Rule and count: The count comes from the existing
people(deals, on)insrc/people.ts, counting people withnudge !== null, with the agent'sonpassed in. Nothing reads the clock inside the page module. It counts the whole book, not the current search or side filter, so it matches/people. - Nobody to nudge: No line, no empty box, no layout shift. Anon sees nothing new, because
/peopleneeds the user role. - Escaping: The line holds only numbers and fixed words.
- Files: The change is in
src/pages/clock.ts, with a.clock-nudgestyle instatic/app.css..clock-nudgeis documented indocs/design/areas/clock.md, notdocs/DESIGN.md. The/handler needed no change, since it already passes the deals and today. There is no new route and no contract cell is touched. - Test: The new test is in
src/lastsent.test.ts. On a fresh boot with the sample data it checks the right count in the text andhref="/people". It also checks that no line appears for a date far in the future or for an empty book. I did not run it against main to confirm it fails there. - Speed: The cold-rebuild speed test for the clock failed at 55 ms in one run with my change, but it failed on main too in an earlier run. In this sandbox the People and reminder-review tests miss the 50 ms budget on main as well. The clock now computes
people()on each rebuild, so a cold rebuild is a little slower. I did not cache it. - Checks not run: I ran
bun x tsc --noEmitonce and it printed the compiler's help text, because the repo has notsconfig.json; so there was no type check. The repo has noscripts/design-lint.tsorscripts/gate.ts.scripts/lint-design.tsprinted nothing, and I couldn't tell whether that means it passed. I did not run the full suite; the forge's check does that on push.
To try it, boot the app with the sample data and open / as a signed-in user.
🤖 Generated with Claude Code
The clock now shows one amber line under its heading when anyone needs a nudge, and the line links to
/people. For example, "2 people owe a date soon and have heard nothing from you in a week", or "1 person owes … and has heard…" for one. The new test and the clock, sample and progress tests pass. The speed test is flaky in this sandbox, and I never got a clean run of it.people(deals, on)insrc/people.ts, counting people withnudge !== null, with the agent'sonpassed in. Nothing reads the clock inside the page module. It counts the whole book, not the current search or side filter, so it matches/people./peopleneeds the user role.src/pages/clock.ts, with a.clock-nudgestyle instatic/app.css..clock-nudgeis documented indocs/design/areas/clock.md, notdocs/DESIGN.md. The/handler needed no change, since it already passes the deals and today. There is no new route and no contract cell is touched.src/lastsent.test.ts. On a fresh boot with the sample data it checks the right count in the text andhref="/people". It also checks that no line appears for a date far in the future or for an empty book. I did not run it against main to confirm it fails there.people()on each rebuild, so a cold rebuild is a little slower. I did not cache it.bun x tsc --noEmitonce and it printed the compiler's help text, because the repo has notsconfig.json; so there was no type check. The repo has noscripts/design-lint.tsorscripts/gate.ts.scripts/lint-design.tsprinted nothing, and I couldn't tell whether that means it passed. I did not run the full suite; the forge's check does that on push.To try it, boot the app with the sample data and open
/as a signed-in user.🤖 Generated with Claude Code
Closes #233