phamnazage-jpg
53edcd86ac
docs: update EXECUTION_BOARD + VNEXT_COMPLETION_CHECKLIST for vNext.1 closure
...
CI / Build & Test (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Release (push) Has been cancelled
- EXECUTION_BOARD: record vNext.1 release gate completion, remote43 binary swap, fresh 3-layer acceptance status
- VNEXT_COMPLETION_CHECKLIST: upgrade to 'conditionally complete (vNext.1)', update all checklists
- add vnext_fresh_acceptance.py: standalone fresh 3-layer acceptance probe script
2026-06-05 11:39:46 +08:00
phamnazage-jpg
492f33a129
feat(vnext): complete vNext.1 release gate — default chain admission, idempotent init, user key skeleton
...
CI / Build & Test (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Release (push) Has been cancelled
- DEFAULT_CHAIN_ADMISSION.md: reviewed and approved, real artifact refs added
- DEFAULT_DATA_IDEMPOTENT_RELEASE_GATE.md: reviewed and approved
- scripts/setup_default_data.sh: idempotent init with --dry-run/--apply/artifact
- scripts/test/test_default_data.sh: 4 test cases all pass
- scripts/acceptance/verify_user_key_self_service.sh: Phase 0 skeleton
- .gitignore: add generated artifact directories
2026-06-05 11:07:50 +08:00
phamnazage-jpg
7ce72cbc35
docs: sync truth docs, frontend audits, and runbooks
2026-06-04 20:00:03 +08:00
phamnazage-jpg
e804a830a0
docs(portal): record 2026-06-03 frontend visual upgrade + design system runbook
...
CI / Build & Test (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Release (push) Has been cancelled
- EXECUTION_BOARD.md: new 2026-06-03 entry with full evidence trail
(asset tests, browser smoke, screenshot list, conclusion=已闭环)
- 2026-06-03-FRONTEND-DESIGN-SYSTEM-RUNBOOK.md (new, 10KB):
* file structure + design token quick reference
* standard page skeleton + component API (stat-card, statusbar,
Portal.icons, Portal.toast, Portal.copyText, Portal.theme,
Portal.renderModernAdminNav)
* test-contract string rules (70+ strings must remain in HTML)
* common pitfalls (duplicate <!doctype>, duplicate const AdminCommon,
stat-card ID drift, accidental script removal)
* submission workflow + screenshot evidence commands
2026-06-03 09:11:18 +08:00
phamnazage-jpg
35447be934
feat(deploy): add CRM-only online deployment to remote43
...
CI / Build & Test (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Release (push) Has been cancelled
- scripts/deploy/deploy_crm_only.sh: 单进程部署 sub2api-cn-relay-manager
CRM 控制面到 remote43,不依赖 sub2api host / PG / Redis 容器。
复用 scripts/deploy/remote43_patched_stack_lib.sh 的 env 渲染
(render_remote43_crm_env),render_crm_only_bootstrap 用 $\{VAR\} 占位符 +
sed 注入避开 set -u + unquoted-heredoc 边缘问题。
部署前先 kill 老进程 (再 scp 二进制) 避免 ELF overwrite 失败。
- docs/DEPLOYMENT.md: 加 '在线部署节点' 段,记录 stack / 端口 / 入口 / 验证。
- docs/EXECUTION_BOARD.md: 顶部加 'Latest Online Stack' 段。
- artifacts/online-deploy-20260602/: 本次真实部署的证据
- 01-local-build.txt: 本地 server 二进制 md5 + git head
- 02-remote-inspect.txt: 远端 process / port / db tables
- 03-crm-api-checks.txt: /healthz /api/packs /api/hosts /metrics 真实响应
- 04-portal-public.txt: sub.tksea.top 公共入口
- 05-quality-gates.txt: gofmt / vet / test -race / integration
- manifest.json: 结构化汇总
验证(2026-06-02 21:32-21:43):
- /healthz: HTTP 200 'ok'
- /api/packs (Bearer): HTTP 200 '{"packs":[]}'
- /api/hosts (Bearer): HTTP 200 '{"hosts":[]}'
- /api/packs (no auth): HTTP 401
- /metrics (Prometheus): HTTP 200,含 active_hosts/active_providers/
db_connections_active + Go runtime
- sub.tksea.top/portal/: HTTP 200
- sub.tksea.top/portal-admin-api/healthz: HTTP 200 'ok'(反代到 CRM)
- go test -race ./internal/... ./tests/integration/...: PASS
- gofmt / go vet: 干净
2026-06-02 21:46:39 +08:00
phamnazage-jpg
91fa5d6ab4
fix(review): 完成系统性 Review 修复方案 - Task B-01 HTTP Server 超时配置
...
本次提交包含:
- B-01: HTTP Server 添加超时配置 (ReadTimeout/WriteTimeout/IdleTimeout/MaxHeaderBytes)
- 添加结构化日志包 internal/log/ (B-02 部分完成)
- 添加 Review 报告文档
- 添加系统性修复方案文档
- 添加最佳实践审核报告文档
- 更新任务清单和执行板
测试验证:
- TestServerHasTimeoutConfiguration 通过
关联文档:
- docs/2026-06-01-SYSTEMATIC-REVIEW-REPORT.md
- docs/2026-06-01-SYSTEMATIC-REPAIR-PLAN.md
- docs/2026-06-01-BEST-PRACTICE-AUDIT-REPORT.md
2026-06-01 22:02:01 +08:00
phamnazage-jpg
c588a95c7d
fix(access): verify subscription readiness with real user keys
...
When subscription access is requested with an explicit access_api_key, assign the subscription to the real target user, bind that user's API key to the subscription group, and probe readiness with the same key instead of falling back to a managed synthetic user.
Update the runtime/reconcile flows, adapter tests, and source-of-truth docs so subscription_ready now reflects user-visible host access rather than managed-key-only closure success.
2026-06-01 09:55:11 +08:00
phamnazage-jpg
fd12838519
docs(testing): record repo upsert closure
2026-05-30 18:54:07 +08:00
phamnazage-jpg
2f2653c76f
docs(testing): record upsert and open branch follow-up
2026-05-30 18:48:20 +08:00
phamnazage-jpg
d9216d5712
docs(testing): record narrow branch coverage follow-up
2026-05-30 18:28:03 +08:00
phamnazage-jpg
51472e9951
docs(testing): record hotspot branch coverage uplift
2026-05-30 17:22:25 +08:00
phamnazage-jpg
b33fa10677
test(quality): promote overlay coverage to core gate
2026-05-30 17:13:38 +08:00
phamnazage-jpg
249ad5938f
test(quality): promote sqlite coverage to core gate
2026-05-30 17:04:45 +08:00
phamnazage-jpg
b371c698cc
test(quality): promote routing coverage to core gate
2026-05-30 16:54:05 +08:00
phamnazage-jpg
2a925e2954
test(quality): promote internal app coverage to core gate
2026-05-30 16:48:55 +08:00
phamnazage-jpg
800096542b
docs(testing): record internal app coverage uplift
2026-05-30 16:41:05 +08:00
phamnazage-jpg
b5529eb9d4
docs(testing): record unified quality gate rollout
2026-05-30 15:28:58 +08:00
phamnazage-jpg
17c406b661
docs(skills): capture project learnings as reusable workflows
2026-05-30 14:55:05 +08:00
phamnazage-jpg
0a3828d682
docs(status): record false negative verification
2026-05-30 14:46:20 +08:00
phamnazage-jpg
7dbd6769db
docs(acceptance): record final user flow verification
2026-05-30 11:21:03 +08:00
phamnazage-jpg
2b46598a82
docs(portal): record p4-t6 remote verification
2026-05-30 11:01:34 +08:00
phamnazage-jpg
aac18e0df6
docs(portal): record p4-t5 remote verification
2026-05-30 10:45:04 +08:00
phamnazage-jpg
e940ebda2c
docs(portal): record p4-t4 remote verification
2026-05-30 10:30:25 +08:00
phamnazage-jpg
939dd4f8e1
docs(portal): record p4-t3 remote verification
2026-05-30 10:17:57 +08:00
phamnazage-jpg
e87decee4d
docs(portal): record p4-t2 remote verification
2026-05-30 08:29:28 +08:00
phamnazage-jpg
11fb02de9b
docs(portal): record p4-t1 remote verification
2026-05-29 19:48:27 +08:00
phamnazage-jpg
e3be48da71
docs(accounts): record p3-t3 remote verification
2026-05-29 19:31:49 +08:00
phamnazage-jpg
ad94feab72
docs(accounts): record p3-t2 remote verification
2026-05-29 16:02:26 +08:00
phamnazage-jpg
82f3636521
docs(accounts): record p3-t1 remote verification
2026-05-29 14:58:23 +08:00
phamnazage-jpg
83148ce3c1
docs(routing): record p2-t4 acceptance matrix verification
2026-05-29 14:00:06 +08:00
phamnazage-jpg
112ed67f6b
docs(routing): record p2-t3 remote verification
2026-05-29 13:43:23 +08:00
phamnazage-jpg
dbfd2ba11c
docs(routing): record p2-t2 remote verification
2026-05-29 13:24:32 +08:00
phamnazage-jpg
09b43ce2d8
docs(portal): record p2-t1 remote verification
2026-05-29 13:08:19 +08:00
phamnazage-jpg
535f00712d
docs(routing): add phase2 closure task board
2026-05-29 12:56:27 +08:00
phamnazage-jpg
537d4f781c
docs(routing): record canonical shadow verification
2026-05-29 12:41:03 +08:00
phamnazage-jpg
3c061f3ddb
feat(routing): add canonical shadow provider pack
2026-05-29 12:29:05 +08:00
phamnazage-jpg
b88aac7f79
docs(routing): record managed 503 root cause
2026-05-29 12:21:10 +08:00
phamnazage-jpg
51b4df788c
docs(routing): record managed proxy key verification
2026-05-29 11:43:11 +08:00
phamnazage-jpg
b4d1b8c377
docs(routing): record route proxy bridge verification
2026-05-29 10:38:09 +08:00
phamnazage-jpg
6ff4490b6e
docs(routing): record cooldown rebinding verification
2026-05-29 10:17:38 +08:00
phamnazage-jpg
d821162a8b
docs(routing): record resolver failover verification
2026-05-29 10:06:16 +08:00
phamnazage-jpg
c2ac6840ec
docs(routing): record route resolve remote verification
2026-05-29 09:53:16 +08:00
phamnazage-jpg
932db59638
docs(routing): record p1-t4 remote verification
2026-05-29 07:49:16 +08:00
phamnazage-jpg
9d92360401
docs(routing): record p1-t3 remote verification
2026-05-28 22:00:14 +08:00
phamnazage-jpg
8097750ec0
docs(routing): record p1-t2 remote verification
2026-05-28 20:25:46 +08:00
phamnazage-jpg
361a93270f
docs(routing): capture phase1 foundation plan
2026-05-28 15:37:13 +08:00
phamnazage-jpg
e549549b4d
fix(route-lab): record host channel reuse limits
2026-05-28 14:25:04 +08:00
phamnazage-jpg
e13e6b8fc1
feat(route-lab): add shared-group relay validation pack
2026-05-28 13:57:17 +08:00
phamnazage-jpg
6b03eb8fb9
feat(admin): harden provider draft model conflicts
2026-05-28 12:18:10 +08:00
phamnazage-jpg
de33ff3492
feat(admin): add session-based portal login
2026-05-28 11:01:29 +08:00