-
0d38bd258a
chore(env): use test_id/test_pass placeholders in dev example
main
yiekheng
2026-05-04 09:27:07 +08:00
-
9eed051916
feat(web,api): row-level search, more sort columns, copy buttons
yiekheng
2026-05-04 09:26:11 +08:00
-
1c3d4ef893
fix(transfer): use dedicated /user/batch endpoint, alert+skip on fetch failure
yiekheng
2026-05-04 08:31:08 +08:00
-
850fb71ddd
fix(web): force scroll-to-top on tab switch (iOS Safari quirk)
yiekheng
2026-05-03 11:51:27 +08:00
-
9b222eec56
fix(web): drop Refresh button, move Add right-aligned on the title row
yiekheng
2026-05-03 11:45:53 +08:00
-
fa93a8c866
fix(web): drop 'keep scrolling to load more' tail from subtitle
yiekheng
2026-05-03 11:43:21 +08:00
-
ee74ebda64
feat(web): show real DB total in table header (replaces '200+')
yiekheng
2026-05-03 11:38:38 +08:00
-
f485dc52aa
update rex & siong production env
yiekheng
2026-05-03 11:32:26 +08:00
-
6bb85222d1
perf(web): server-side pagination + infinite-scroll for accounts/users
yiekheng
2026-05-03 11:29:34 +08:00
-
549e9b5939
perf(web): cache /acc/ and /user/ for 30s with tag invalidation
yiekheng
2026-05-03 11:21:58 +08:00
-
9a4072129a
perf(web): add route-level loading skeletons for instant tab switching
yiekheng
2026-05-03 11:14:13 +08:00
-
324c88e652
fix(db): pool_size default 24 to fit transfer-bot's 20 worker threads
yiekheng
2026-05-03 10:56:17 +08:00
-
a42fdf54b0
perf(api): pool MySQL connections + drop per-request schema check
yiekheng
2026-05-03 10:54:11 +08:00
-
2871e04693
fix(scripts): typo in publish.sh buildx error ('sudosudo')
yiekheng
2026-05-03 10:44:16 +08:00
-
98a0a433a1
fix(scripts): publish.sh — drop bogus auth check, helpful buildx error
yiekheng
2026-05-03 10:41:52 +08:00
-
66737596b8
fix(scripts): publish.sh routes docker through sudo by default
yiekheng
2026-05-03 10:39:59 +08:00
-
626344cc16
fix(web): unblock PWA icon under trailingSlash routing
yiekheng
2026-05-03 10:26:09 +08:00
-
eb297e977e
fix(web): don't apply break-all when EditableCell has a custom renderView
yiekheng
2026-05-03 10:19:02 +08:00
-
d94dfc7f9a
fix(web-auth): sign out works, drop passkey settings UI, add password reveal
yiekheng
2026-05-03 10:17:54 +08:00
-
e0b0b4250b
chore: remove obsolete scripts/verify_debug.sh
yiekheng
2026-05-03 10:16:49 +08:00
-
ebccad2094
B4 cutover: retire Flask cm-web, rename cm-web-next → cm-web
yiekheng
2026-05-03 10:12:20 +08:00
-
e2870a4d27
feat(scripts): add gen_auth_secret.sh helper for CM_AUTH_SECRET
yiekheng
2026-05-03 10:01:04 +08:00
-
fc62834019
fix(web-auth): soften forgot-password hint to 'contact IT'
yiekheng
2026-05-03 09:48:05 +08:00
-
f4d5f97c42
fix(web-auth): import WebAuthn JSON types from @simplewebauthn/types
yiekheng
2026-05-03 09:45:36 +08:00
-
312cc4dc21
fix(web-auth): gate Secure cookie on CM_DEBUG, pass CM_AGENT creds to web-next
yiekheng
2026-05-03 09:01:35 +08:00
-
a8ee6f068d
docs(agents): document the auth model and passkey storage
yiekheng
2026-05-03 08:31:23 +08:00
-
b4c526bf9f
feat(web): nav account menu with sign out + passkey settings link
yiekheng
2026-05-03 08:31:00 +08:00
-
6ee95bca08
feat(web): /cm-passkeys settings page for passkey enroll/remove
yiekheng
2026-05-03 08:30:25 +08:00
-
9e74d75c94
feat(web): /cm-auth login page with passkey + password options
yiekheng
2026-05-03 08:29:25 +08:00
-
0d0dfd593c
feat(web): middleware redirects unauthenticated requests to /cm-auth
yiekheng
2026-05-03 08:28:16 +08:00
-
7dd8bfcefa
feat(web): Server Actions for password login + WebAuthn passkey flows
yiekheng
2026-05-03 08:28:04 +08:00
-
380e86b885
feat(web): WebAuthn relying-party helper (host-derived rpID/origin)
yiekheng
2026-05-03 08:27:32 +08:00
-
7a6569800e
feat(web): JSON-file passkey store with atomic writes + write lock
yiekheng
2026-05-03 08:27:21 +08:00
-
a8751b6731
feat(web): add iron-session wrapper (web/lib/auth.ts)
yiekheng
2026-05-03 08:27:05 +08:00
-
f2facb200f
feat(compose): mount web-next-auth-data volume + pass CM_AUTH_SECRET
yiekheng
2026-05-03 08:26:49 +08:00
-
54c47cf7d2
feat(envs): add CM_AUTH_SECRET to all .env.example templates
yiekheng
2026-05-03 08:26:11 +08:00
-
e5a2a36fb2
build(web): add iron-session and simplewebauthn deps
yiekheng
2026-05-03 08:25:32 +08:00
-
9af4d17aab
Add implementation plan for B-auth (login + WebAuthn passkeys)
yiekheng
2026-05-03 08:21:47 +08:00
-
9771bb72c5
fix(web): move mobile status back into card header next to username
yiekheng
2026-05-03 08:17:23 +08:00
-
43533c3485
fix(spec): rename auth routes to /cm-auth and /cm-passkeys
yiekheng
2026-05-03 08:16:36 +08:00
-
fe26878b38
fix(web): drop duplicate status — badge IS the editable trigger
yiekheng
2026-05-03 08:13:51 +08:00
-
6c984b6200
fix(web): lock body scroll while modal is open
yiekheng
2026-05-03 08:12:35 +08:00
-
48dacdb445
Add design spec for B-auth (login + WebAuthn passkeys)
yiekheng
2026-05-02 21:31:45 +08:00
-
43db97aeaa
fix(api): drop flask_cors from cm_api (CORS-A defense-in-depth)
yiekheng
2026-05-02 21:27:06 +08:00
-
3bfd35ef8d
fix(web): PWA notch safe-area + skip autoFocus on touch devices
yiekheng
2026-05-02 21:26:42 +08:00
-
eebbcb3db2
feat(web): success toast on confirmed create/delete
yiekheng
2026-05-02 21:20:25 +08:00
-
e3ac94cada
feat(web): manual create flow with input dialog for acc and user
yiekheng
2026-05-02 21:19:24 +08:00
-
e507714dc5
feat(web): delete with confirm dialog + fix iOS auto-zoom on edit
yiekheng
2026-05-02 21:17:19 +08:00
-
dac1e10b5d
feat(api): add /delete-acc-data and /delete-user-data routes
yiekheng
2026-05-02 21:15:21 +08:00
-
f13e3993e9
feat(web): reskin to refined SaaS aesthetic (per Dribbble reference)
yiekheng
2026-05-02 21:15:02 +08:00
-
3fe33772ce
fix(web): editable cell wraps long values instead of overflowing
yiekheng
2026-05-02 21:08:19 +08:00
-
b497e133bd
feat(web): add PWA icons via Next.js ImageResponse (frontend-design)
yiekheng
2026-05-02 21:02:58 +08:00
-
afc94e613e
feat(web): add PWA manifest config (theme_color matches layout viewport)
yiekheng
2026-05-02 21:01:18 +08:00
-
7a5c00d08a
feat(web): add layout, nav, and error boundary (frontend-design)
yiekheng
2026-05-02 21:01:15 +08:00
-
c0749d1af0
feat(web): add Server Component entry pages for / and /users
yiekheng
2026-05-02 20:56:56 +08:00
-
7b97e593e5
feat(web): add data tables and editable-cell primitive (frontend-design)
yiekheng
2026-05-02 20:56:49 +08:00
-
0ebd35f964
feat(web): add 30s auto-refresh client component
yiekheng
2026-05-02 20:50:55 +08:00
-
b398faba0a
feat(web): add updateAccount and updateUser Server Actions
yiekheng
2026-05-02 20:50:50 +08:00
-
3297c500a4
feat(web): add server-side api-server fetch helper
yiekheng
2026-05-02 20:50:45 +08:00
-
aa76131b23
feat(web): add TypeScript types for Acc and User
yiekheng
2026-05-02 20:50:38 +08:00
-
a9642a7121
Add implementation plan for B2+B3 (UI port + PWA)
yiekheng
2026-05-02 20:49:13 +08:00
-
2de545e854
Add design spec for B2+B3 (UI port + PWA)
yiekheng
2026-05-02 20:45:52 +08:00
-
21bb1f0dde
fix(web): bump tailwind to ^4.1 (4.0.0 had a postcss/oxide serde mismatch)
yiekheng
2026-05-02 20:39:04 +08:00
-
ccb6c27c3d
fix(web): pin typescript to 5.7.2 (5.7.0 was never published)
yiekheng
2026-05-02 20:37:33 +08:00
-
5cac356007
docs(spec): hide /api entirely — drop Route Handler section, document RSC+Server-Actions choice
yiekheng
2026-05-02 20:36:11 +08:00
-
ff99b1248a
feat(web): hide /api entirely — RSC + Server Actions instead
yiekheng
2026-05-02 20:34:31 +08:00
-
a04d7ecc50
docs(agents): document web/ Next.js project and cm-web-next dev URL
yiekheng
2026-05-02 20:33:00 +08:00
-
203ab5daef
feat(scripts): include web-next in dev.sh and publish.sh
yiekheng
2026-05-02 20:32:47 +08:00
-
e78d8c8fa8
feat(envs): add CM_WEB_NEXT_HOST_PORT to all .env.example templates
yiekheng
2026-05-02 20:32:24 +08:00
-
17b38a7c35
feat(compose): add web-next service (side-by-side with web-view)
yiekheng
2026-05-02 20:32:20 +08:00
-
96fa650caf
feat(docker): add multi-stage Dockerfile for cm-web-next
yiekheng
2026-05-02 20:31:53 +08:00
-
addc40e851
feat(web): hash-encoded API paths + catch-all Route Handler proxy
yiekheng
2026-05-02 20:31:38 +08:00
-
17e60db935
feat(web): add scaffold layout and page (frontend-design generated)
yiekheng
2026-05-02 20:31:16 +08:00
-
a556b4e3a0
feat(web): add .gitignore and .dockerignore
yiekheng
2026-05-02 20:25:43 +08:00
-
3b8973ba20
feat(web): bootstrap Next.js 15 project configs (no lockfile yet)
yiekheng
2026-05-02 20:25:36 +08:00
-
f0fbd01a79
feat(plan): wire hash-encoded API paths into B1 plan
yiekheng
2026-05-02 18:15:35 +08:00
-
31b092f231
feat(spec): hash-encode API paths at the cm-web-next public boundary
yiekheng
2026-05-02 18:14:40 +08:00
-
d60c5c97a9
Add implementation plan for B1 (Next.js scaffold)
yiekheng
2026-05-02 18:12:59 +08:00
-
bdcea8b9bc
docs(spec): route web UI code through frontend-design skill
yiekheng
2026-05-02 18:09:58 +08:00
-
572b200603
Add design spec for B1 (Next.js scaffold + side-by-side deploy)
yiekheng
2026-05-02 18:07:47 +08:00
-
abc2f1b78d
fix(scripts): dev.sh down --remove-orphans (cleans up prod-test leftovers)
yiekheng
2026-05-02 18:01:41 +08:00
-
e68e64065a
refactor(scraper): make get_register_link and get_user_credit dump on failure
yiekheng
2026-05-02 17:55:12 +08:00
-
698e5bf22a
refactor(scraper): convert input-value extractions to helper
yiekheng
2026-05-02 17:54:58 +08:00
-
b7bc534681
feat(scraper): add ScraperError + _dump_html + _find_input_value helpers
yiekheng
2026-05-02 17:54:21 +08:00
-
9ec0d2ade4
Add implementation plan for R3 (scraper resilience)
yiekheng
2026-05-02 17:52:58 +08:00
-
d4ab9f9c49
Add design spec for R3 (cm_bot.py scraper resilience)
yiekheng
2026-05-02 17:50:27 +08:00
-
f6505c1d1d
docs(plan): fix Task 9 step 3 — rebuild with override, run with base
yiekheng
2026-05-02 17:43:05 +08:00
-
614718cd43
docs: add aaPanel hardening guide (C3/C4/C7 + dev vhost)
yiekheng
2026-05-02 17:39:35 +08:00
-
145f071ca4
docs(agents): drop stale 'hardcoded credentials' note (moved to env in 45303d0)
yiekheng
2026-05-02 17:38:35 +08:00
-
86b329340c
chore(compose): drop api-server host port from base (internal only)
yiekheng
2026-05-02 17:38:26 +08:00
-
5c8483fa09
feat(compose): keep Flask dev server in dev override; expose api-server on localhost
yiekheng
2026-05-02 17:38:15 +08:00
-
1d4ecadfaa
feat(docker): swap Flask dev server for gunicorn in api and web images
yiekheng
2026-05-02 17:38:01 +08:00
-
231ae69eef
fix(hal): set_security_pin_api returns dict; cm_telegram now correct
yiekheng
2026-05-02 17:37:50 +08:00
-
d32e4ba58b
feat(api): add create_app factory for gunicorn entrypoint
yiekheng
2026-05-02 17:37:13 +08:00
-
74d496b2bc
build: add gunicorn 23.0.0 to requirements
yiekheng
2026-05-02 17:36:56 +08:00
-
6e2ec78418
Add implementation plan for prod hardening C1+C5+C6
yiekheng
2026-05-02 17:36:26 +08:00
-
e7ab6b1325
Add design spec for prod hardening (C1+C5+C6) and aaPanel guide
yiekheng
2026-05-02 17:28:45 +08:00
-
8b8978831b
Normalize rex/siong envs to .env.example + gitignore pattern
yiekheng
2026-05-02 17:12:56 +08:00
-
dff8be829c
feat(seed): add 'done' acc rows and matching user records
yiekheng
2026-05-02 17:09:54 +08:00
-
6126430a3e
docs(agents): document the local-as-dev tier and bot CLI
yiekheng
2026-05-02 17:03:33 +08:00