Public: anyone can read this; the crew can change it.

Closed deals from earlier years fold into one line per year so a long book stays quick to read #327

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

On the clock, closed and fell-through deals from earlier years now fold into one `<details>` per year. Each reads like "2025 · 14 closed · $5,120,000 · commission $128,000", with figures only for deals that carry them. It is server-rendered with no JavaScript. The two earlier tries had drifted well past that, so this push mostly removes their side edits. `years.test.ts` and `lastsent.test.ts` pass…

shipped production is serving it deploy d2eada7

opened this

On the clock, closed and fell-through deals from earlier years now fold into one <details> per year. Each reads like "2025 · 14 closed · $5,120,000 · commission $128,000", with figures only for deals that carry them. It is server-rendered with no JavaScript. The two earlier tries had drifted well past that, so this push mostly removes their side edits. years.test.ts and lastsent.test.ts pass here; the full suite was not re-run after the cleanup, and the forge's check is the verdict.

The feature

  • src/years.ts is a pure function that groups by year in the agent's timezone, using the day the closing deadline was done. src/years.test.ts covers the year boundary and the Find auto-open.
  • src/pages/clock.ts lists the current year's deals as before. Each earlier year gets a details.closed-year with its deals underneath, shown exactly as the Closed list shows them now. Find still searches all years and opens any year that has a match.
  • The new class has its CSS in static/app.css and is listed in docs/design/areas/clock.md. The README has the line under Commission and your year. docs/TECHNICAL.md has a note too.
  • src/speed.test.ts now spreads the fixture's closed deals over 2023–2026, so the 200-deal test exercises the folded years.

What I removed from the earlier tries

  • Cache keys: the 64-bit stamp() cache-key rewrite in src/memo.ts, src/pages/sheet.ts, src/reminders.ts and src/pages/clock.ts. It had nothing to do with this issue.
  • Deleted test: the People "no nudge" test in src/lastsent.test.ts, which an earlier try had deleted.
  • Speed-test retry: I put back the retry in the warm-path speed test that an earlier try had removed.

What I did not do

  • Speed budget: the reminder review and People routes exceed 50 ms in this sandbox, on main as well as on this branch, so that is load on this machine rather than this change. I did not loosen any budget. If the forge's check is red on the speed test, that is the place to look.
  • Checks I couldn't run: bun scripts/gate.ts and bun scripts/design-lint.ts don't exist in this clone. bun x tsc --noEmit only prints the compiler's help text and doesn't type-check, since the repo has no tsconfig.json.

No contract cell or migration changed. To try it, open / on a book with closed deals from before this year, then search for an address from an earlier year and check that its year opens.

Closes #312

edited this
commented

On the clock, closed and fell-through deals from earlier years now fold into one <details> per year. Each reads like "2025 · 14 closed · $5,120,000 · commission $128,000", with figures only for deals that carry them. It is server-rendered with no JavaScript. The two earlier tries had drifted well past that, so this push mostly removes their side edits. years.test.ts and lastsent.test.ts pass here; the full suite was not re-run after the cleanup, and the forge's check is the verdict.

The feature

  • src/years.ts is a pure function that groups by year in the agent's timezone, using the day the closing deadline was done. src/years.test.ts covers the year boundary and the Find auto-open.
  • src/pages/clock.ts lists the current year's deals as before. Each earlier year gets a details.closed-year with its deals underneath, shown exactly as the Closed list shows them now. Find still searches all years and opens any year that has a match.
  • The new class has its CSS in static/app.css and is listed in docs/design/areas/clock.md. The README has the line under Commission and your year. docs/TECHNICAL.md has a note too.
  • src/speed.test.ts now spreads the fixture's closed deals over 2023–2026, so the 200-deal test exercises the folded years.

What I removed from the earlier tries

  • Cache keys: the 64-bit stamp() cache-key rewrite in src/memo.ts, src/pages/sheet.ts, src/reminders.ts and src/pages/clock.ts. It had nothing to do with this issue.
  • Deleted test: the People "no nudge" test in src/lastsent.test.ts, which an earlier try had deleted.
  • Speed-test retry: I put back the retry in the warm-path speed test that an earlier try had removed.

What I did not do

  • Speed budget: the reminder review and People routes exceed 50 ms in this sandbox, on main as well as on this branch, so that is load on this machine rather than this change. I did not loosen any budget. If the forge's check is red on the speed test, that is the place to look.
  • Checks I couldn't run: bun scripts/gate.ts and bun scripts/design-lint.ts don't exist in this clone. bun x tsc --noEmit only prints the compiler's help text and doesn't type-check, since the repo has no tsconfig.json.

No contract cell or migration changed. To try it, open / on a book with closed deals from before this year, then search for an address from an earlier year and check that its year opens.

Approved

Earlier years fold into one server-rendered details per year, grouped by closedOn/fellOn (agent zone), pure years.ts with tests for the boundary and the Find auto-open. No contract cell touched, no dependency, new class documented, lint-design clean, years/lastsent tests pass. Minor, not blocking: the README paragraph has uneven line wrapping.

merged this
Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs