Commit Graph

  • 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