Skip to content

Backlog: data integrity, auth hardening, local time, accessible forms, code splitting - #2

Merged
yairixStudio merged 4 commits into
mainfrom
feature/backlog-fixes
Oct 8, 2026
Merged

yairixStudio merged 4 commits into
mainfrom
feature/backlog-fixes

Conversation

@yairixStudio

Copy link
Copy Markdown
Owner

Clears the whole backlog from the first round (see BACKLOG.md, all items done).

Server

  • Addons and integrations keyed per workspace – unique keys rebuilt by an idempotent migration (verified on a copy of real data: all 37 tables keep their row counts).
  • Deleting a workspace removes all its rows and files; deleting an account removes personal workspaces and hands shared records to the owner.
  • Forced password reset enforced server-side (short-lived reset token, no session before the reset, existing sessions revoked); password changes revoke other sessions; rate limiting on login/reset/passkey sign-in; passkey-only accounts can set a first password and delete their account.
  • Global client sources need a system admin; addon settings need the workspace owner/admin.
  • Monthly/yearly recurrences keep their day; stats ranges and months follow local days; recurring due dates correct east of UTC; validation fixes (credentials, payments, expenses, catalog).

Client

  • Forced reset flow before entering the app, masked password prompt.
  • All form labels linked to fields (useId); e2e uses getByLabel.
  • Per-route code splitting: main chunk 1,026kB → 412kB, CSS unchanged, screenshots identical.
  • Dashboard keeps the selected range across workspace switches; admins can manage workspace settings; removed unused pages.

Desktop & cleanup

  • Dock icon refreshed after installs; desktop tests run with invisible windows; removed the old Swift menu-bar project.

Tests: 442 server · 378 client · 31 e2e · 5 desktop.

🤖 Generated with Claude Code

Clockwize and others added 4 commits October 8, 2026 09:01
The desktop app (desktop/) replaces it: its tray popover, Dock menu and
widgets cover everything the separate menu-bar app did.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Addons and integrations are keyed per workspace (rebuilt unique keys via
  an idempotent, verified migration); deleting a workspace removes all of
  its rows and files; deleting an account removes personal workspaces and
  hands shared records to the workspace owner
- Forced password reset is enforced server-side: no session before the
  reset (short-lived reset token), existing sessions revoked; password
  changes (self or admin) revoke other sessions; in-memory rate limiting
  on login, reset and passkey sign-in; passkey-only accounts can set a
  first password and delete their account by confirming their email
- Global client sources need a system admin; addon settings need the
  workspace owner/admin
- Monthly/yearly recurrences keep their day (31.1 -> 28.2 -> 31.3);
  stats ranges and months follow the user's local days; recurring due
  dates are correct east of UTC
- Validation fixes: partial credential updates keep fields, paid_date
  cleared when leaving paid, non-positive expense updates rejected,
  catalog price 0 kept
- 442 tests

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The forced password reset happens before the user enters the app and
  the new password is masked; prompts support input types
- Every form label is linked to its field (useId); e2e uses getByLabel
- Pages load per route (React.lazy) with CSS kept in one file in the
  original order: main chunk 1,026kB -> 412kB, screenshots unchanged
- Dashboard stats keep the selected month/range across workspace
  switches and use local day/month boundaries
- Admins can manage workspace settings like on the server; profile
  supports passkey-only accounts; removed two unused pages
- 378 unit tests, 31 e2e tests

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@yairixStudio
yairixStudio merged commit 825c36d into main Oct 8, 2026
7 of 8 checks passed
@yairixStudio
yairixStudio deleted the feature/backlog-fixes branch October 8, 2026 06:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants