Skip to content
Merged

Dev #244

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
c92740c
test: add vitest + rtl + msw + playwright harness with mocked api
vernu Jul 10, 2026
ea1b00c
chore: upgrade to next 16 + react 19
vernu Jul 10, 2026
8072904
chore: migrate to tailwind v4
vernu Jul 10, 2026
89f2f78
chore: bump remaining deps and remove dead prisma dependency
vernu Jul 10, 2026
497a140
refactor: centralize data fetching into typed react-query hooks
vernu Jul 10, 2026
dbea68a
refactor: modernize nextauth wrapper and provider setup
vernu Jul 10, 2026
55ad2a6
feat: rebrand design tokens, dark-mode depth, typography, motion
vernu Jul 10, 2026
d906fb1
feat: responsive app shell with sidebar, command palette, mobile nav
vernu Jul 10, 2026
c1ac054
feat: single-accent recolor and token sweep on subscription + pro alert
vernu Jul 10, 2026
6fe0a5d
refactor: sweep dashboard, auth and header off hardcoded gray/white o…
vernu Jul 10, 2026
f821f48
chore: migrate lint to eslint 9 flat config
vernu Jul 10, 2026
e34dd7a
test: add messaging screen e2e guard (tabs + history render)
vernu Jul 11, 2026
9111ca0
refactor: decompose 1051-line message-history into focused modules
vernu Jul 11, 2026
d1548b4
refactor: decompose 652-line get-started into focused modules
vernu Jul 11, 2026
2623118
refactor: decompose 578-line webhooks-history into focused modules
vernu Jul 11, 2026
eba534d
feat: shared empty states, button press micro-interaction, gradient r…
vernu Jul 11, 2026
79e6dce
fix: add rel attributes to external status link in footer
vernu Jul 11, 2026
dda3820
fix: eliminate mobile horizontal overflow and add scroll-width e2e guard
vernu Jul 11, 2026
e6bb6e2
feat: split nav config into 4-item mobile bar + 5-item desktop sidebar
vernu Jul 11, 2026
6c36361
feat: messaging subroutes (send/bulk/history/api) with full-width his…
vernu Jul 11, 2026
516e626
feat: webhooks page owns subscriptions + deliveries subroutes
vernu Jul 11, 2026
bdae87a
feat: redesign dashboard home into overview with quick actions
vernu Jul 11, 2026
8a5f12a
feat: redesign onboarding into a conversion-focused guided setup
vernu Jul 11, 2026
f5815e1
feat: merge account into settings layout with billing/profile/securit…
vernu Jul 11, 2026
60e59f0
fix(web): point Contribute links to canonical marketing page
vernu Jul 14, 2026
4ce6d00
fix: resolve hydration, script-tag and invalid HTML nesting console e…
vernu Jul 18, 2026
50d0902
refactor: make transitions and entrance animations subtle
vernu Jul 18, 2026
0ea85c0
feat: clean up app chrome, rebuild footer and fix sidebar overlap
vernu Jul 18, 2026
02bd1d4
feat: make every page searchable with keyword matching
vernu Jul 18, 2026
a949729
feat: rebuild dashboard home around real usage and activity data
vernu Jul 18, 2026
99a3a79
feat: rebuild bulk send as a guided 4-step flow with validation
vernu Jul 18, 2026
1979e2f
feat: drop recent activity, correct usage wording, rebuild the API guide
vernu Jul 18, 2026
9cb1213
feat: show relative timestamps with the exact time on hover
vernu Jul 18, 2026
ffbbabd
fix: stack footer links vertically on mobile
vernu Jul 18, 2026
4cdcce6
feat(api): search message history by body, recipient or sender
vernu Jul 18, 2026
8c81835
feat: redesign message history around a scannable list
vernu Jul 18, 2026
9913b7c
feat: rebuild the send page with recipient chips and segment counting
vernu Jul 18, 2026
1999593
fix: day header overlap, mobile footer alignment, modal animation
vernu Jul 18, 2026
628e5b0
feat: rework the SMS detail modal around chips and per-field copy
vernu Jul 18, 2026
1349134
fix: give every messaging tab the same content column
vernu Jul 18, 2026
05143b8
fix: give the dashboard Add device button the guided flow
vernu Jul 18, 2026
6da80ac
fix: correct five CSV handling defects in bulk send
vernu Jul 18, 2026
f65af50
fix: give every webhook its own signing secret
vernu Jul 18, 2026
ad7bcd9
fix: stop the billing page asserting things it does not know
vernu Jul 18, 2026
022a6bd
fix: repair form labelling and navigation landmarks
vernu Jul 18, 2026
2b766e8
fix: drop the phantom device status and share one error state
vernu Jul 18, 2026
b2acba4
fix: tidy the community page and close mobile layout gaps
vernu Jul 18, 2026
e75dbc7
feat: compact the API key rows and align the logo with the brand orange
vernu Jul 18, 2026
5d43866
fix: show every plan in onboarding and let finished steps be reopened
vernu Jul 18, 2026
469aa00
fix: regrade the logo to the brand orange and crop its dead space
vernu Jul 19, 2026
366a479
feat: redesign the billing page and stop calling free users "Unknown"
vernu Jul 19, 2026
c1942a4
fix: repair two cache invalidations that silently matched nothing
vernu Jul 19, 2026
3e45972
refactor: turn on strict TypeScript and fix the 63 errors it found
vernu Jul 19, 2026
5bae4ff
ci: run the web test suites instead of only building
vernu Jul 19, 2026
06295ae
refactor: read the shared data hooks instead of refetching by hand
vernu Jul 19, 2026
290149c
fix(security): stop sending the password hash to the browser
vernu Jul 19, 2026
8297344
refactor: move mutations behind the shared data hooks
vernu Jul 19, 2026
9c08260
refactor: group dashboard components into feature folders
vernu Jul 19, 2026
bd80833
refactor: split bulk-send into a state hook and per-step components
vernu Jul 19, 2026
dcb12c6
chore: delete two unused components
vernu Jul 19, 2026
670d081
chore: drop an over-specific test comment
vernu Jul 19, 2026
c8358de
Merge pull request #241 from vernu/feat/web-refactor-ui
vernu Jul 19, 2026
5f16ac8
fix: show auth errors instead of silently reloading
vernu Jul 19, 2026
68e72d8
test(api): lock the three authorization guards
vernu Jul 19, 2026
9b7a8bc
test(api): lock auth.service core flows
vernu Jul 19, 2026
78fb040
test(api): lock webhook.service security-critical units
vernu Jul 19, 2026
b514891
test(api): lock support.service flows
vernu Jul 19, 2026
6b66160
fix(api): actually enforce email and password validation
vernu Jul 19, 2026
e58412f
fix(api): escape the api-key lookup regex
vernu Jul 19, 2026
8b635a2
fix(api): keep push token and serial out of the device list
vernu Jul 19, 2026
e46b832
Merge pull request #242 from vernu/fix/auth-form-errors
vernu Jul 19, 2026
381e898
Merge pull request #243 from vernu/feat/api-hardening
vernu Jul 19, 2026
ede855e
Merge branch 'main' into dev
vernu Jul 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 42 additions & 2 deletions .github/workflows/build-and-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,51 @@ jobs:
pnpm run build
pnpm test

- name: Build web
# Web previously ran `build` only, so its unit and e2e suites never
# gated a merge. Lint, typecheck and unit tests are fast and
# deterministic, so they block.
- name: Install web dependencies
run: |
cd web
pnpm install
pnpm run build

- name: Lint web
run: |
cd web
pnpm lint

- name: Typecheck web
run: |
cd web
pnpm typecheck

- name: Unit test web
run: |
cd web
pnpm test

- name: Build web
run: |
cd web
pnpm run build

# E2e is fully mocked (e2e/mock-api.ts intercepts every backend call),
# but it drives a real browser, so it is reported without blocking until
# it has proven stable across a few merges.
#
# TODO: remove continue-on-error once that is established. It is here to
# avoid wedging the merge queue on a browser flake, not because e2e
# failures are acceptable.
- name: Install Playwright browser
run: |
cd web
pnpm exec playwright install --with-deps chromium

- name: E2e test web (non-blocking for now)
continue-on-error: true
run: |
cd web
pnpm test:e2e

build-and-test-android:
name: Build and Test Android
Expand Down
Loading
Loading