🔍

What's New — v5 (Configure Everything: Company, Currency, Payments, Full Editing)

Shipped July 20, 2026 (overnight batch). Follows doc 25. Goal: close the “Setup should configure everything” gap and match editing workflows from established tools (Jira/Linear task editing, Clio/Housecall Pro payment & firm settings).

1. Company settings — editable any time

Setup → Company: rename the company/firm and change the business type after onboarding. Previously these were only settable in the first-run wizard — a gap no established app has.

2. Currency

Setup → Currency: USD, EUR, GBP, CAD, AUD, or HKD. Every rate, budget, invoice amount, and dashboard figure across the app follows the chosen symbol immediately.

3. Payments — connected to invoicing

Setup → Payments configures the payment methods documented in the product (Card, ACH, Zelle, Venmo, PayPal, Check): toggle which ones the business accepts, enter payout details per method (Zelle email, PayPal link, @venmo handle, ACH instructions, check payable-to), and pick default terms (Due on receipt / Net 15 / Net 30). New invoices now default to the accepted methods, print the payout details for each accepted method, and show the terms — the Invoices screen’s method chips still allow per-invoice overrides.

4. Full team member editing

Setup → Team: tapping a member’s rate now opens a full editor — name, hourly rate, and role (Worker / Manager / Admin) — not just the rate. Admin’s own role stays locked (a workspace always keeps its admin).

5. Task editing parity with established trackers

On any task’s detail screen you can now also: edit the estimate after creation (tap the “estimated ✎” line — this was board ticket #6), and reassign the task to any team member (Assignee card with one-tap chips; billing value follows the new assignee’s rate for future logged time). Combined with v4’s rename + complete, tasks are now fully editable after creation, like Jira/Linear/Asana.

Under the hood

AppState.payments (enabled methods, per-method details, terms), AppState.currency, currency-aware fmt$ via a module-level symbol registry (same pattern as the roster registry), generic updateItem() for estimate/assignee edits, and updateCompany(). All normalized defensively in repo.ts; old workspaces get USD + all methods enabled, so nothing changes until you configure it.

6. Budgeting & planning (added same night)

For people who plan and budget, two additions modeled on Asana Workload and Clio budget tracking:

Dashboard → Team workload — planned hours remaining per member (estimate − logged on open tasks), sorted busiest-first, with an amber bar when someone has more than 24h queued. Every role sees it (it’s hours, not money), and it pairs with task reassignment: spot the overload, open a task, tap a new assignee.

Billing → Budgets, planned vs actual — a “Budget remaining” summary tile (total used vs total planned), and each budget row now shows the remaining amount (or the amount OVER, in red) alongside the % bar. Budgets now come from one place: the project’s budget in Setup → Projects wins over the legacy per-client number, so editing a project updates the whole budgeting view.

7. QA hardening (10-workflow test pass)

Ten end-to-end workflows — from a completely empty account through full project budgeting, for solo consultant, agency, contractor, and law-firm businesses — now run against every build (onboarding, first task, timers, assign/accept/start/reassign, column reconfiguration, project deadlines & reminders, currency + budget burn, invoicing with payment config through paid, role visibility, and legal-pack installment invoicing). Final result: 65/65 checks green. Real gaps the pass caught and fixed: budget ALERTS on the dashboard ignored project budgets (only legacy client budgets fired alerts) — now unified with Billing via one shared source of truth; the role stored behind every “Worker” picker displayed as “Member” in chips — now labeled Worker everywhere; the setup wizard still said “More →” in three notes; and the Setup screen leaked member rates and the Payments card to Worker viewers — now hidden.