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

A contingency the buyer waives is marked Waived, not done or removed, so its reminders stop and the record shows it was given up on purpose #96

shipped production is serving it opened this has it
opened this

Intent: buyers routinely waive the inspection or financing contingency to win an offer; today the agent can only mark it done (which says it happened) or remove it (which loses it), and neither is true.

Done looks like:

  • [x] An open Inspection, Appraisal or Financing date (any date but Closing) has a Waive button on its sheet beside Mark done and Move this date; it asks once (as removing does, src/pages/confirm.ts) and records the day it was waived and who waived it.
  • [x] A waived date stays on its deal: on the clock and the deal page its marker is grey with the word Waived (not a check), on the client timeline and its printout it reads "Waived", and the progress line (src/progress.ts) counts it as settled, so "4 of 7 dates done" still adds up.
  • [x] A waived date drafts no more reminders, no overdue follow-up, no non-business-day flag and no after-closing conflict; any of its reminders waiting for approval leave Reminders for today and the header count.
  • [x] A waived date can be un-waived from its sheet, coming back open with its date unchanged.
  • [x] The same over every door: POST /api/deals/:id/deadlines/:did/waive (and its undo) in the OpenAPI document, a waive_date MCP tool, and a key in the terminal; each obeys permit for deal update exactly as Mark done does, and the Activity page records who waived what.
  • [x] One sample deal shows a waived date (e.g. Juniper Court's appraisal waived), and the README's walk-through mentions it in one sentence.
  • [x] Tests: waiving stops the reminders and follow-up, un-waiving brings them back, progress counts it, a user who may not update the deal is refused, the page sheet and API agree. bun test and bun scripts/design-lint.ts pass.

Files I expect: src/db.ts (a waived_at column, as a migration), src/deals.ts, src/reminders.ts, src/progress.ts, src/order.ts, src/pages/sheet.ts, src/pages/clock.ts, src/pages/timeline.ts, src/routes.ts, src/openapi.ts, src/mcp.ts, src/terminal.ts, src/sample.ts, README.md.

Risks: every place that reads done_at as "no longer open" must also treat waived as not open; grep for it. Closing itself is never waivable. No cell of contract.json changes.

commented

Reviewed pull #99 at its head: ticked An open Inspection, Appraisal or Financing date (any date but Closing) has a Waive button on its sheet beside Mark done and Move this date; it asks once (as removing does, src/pages/confirm.ts) and records the day it was waived and who waived it.; A waived date stays on its deal: on the clock and the deal page its marker is grey with the word Waived (not a check), on the client timeline and its printout it reads "Waived", and the progress line (src/progress.ts) counts it as settled, so "4 of 7 dates done" still adds up.; A waived date drafts no more reminders, no overdue follow-up, no non-business-day flag and no after-closing conflict; any of its reminders waiting for approval leave Reminders for today and the header count.; A waived date can be un-waived from its sheet, coming back open with its date unchanged.; The same over every door: POST /api/deals/:id/deadlines/:did/waive (and its undo) in the OpenAPI document, a waive_date MCP tool, and a key in the terminal; each obeys permit for deal update exactly as Mark done does, and the Activity page records who waived what.; One sample deal shows a waived date (e.g. Juniper Court's appraisal waived), and the README's walk-through mentions it in one sentence.; Tests: waiving stops the reminders and follow-up, un-waiving brings them back, progress counts it, a user who may not update the deal is refused, the page sheet and API agree. bun test and bun scripts/design-lint.ts pass..

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs