phamnazage-jpg
7ce72cbc35
docs: sync truth docs, frontend audits, and runbooks
2026-06-04 20:00:03 +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
5fbac6ef0b
test(frontend): add provider admin acceptance coverage
...
Add a dedicated acceptance script for providers.html, cover it in the local real-host script regression suite, and document the current frontend review baseline, closure audit, providers action matrix, and remediation task board.
This keeps the frontend acceptance boundary explicit: providers.html now has a repeatable verification entry point for its page-level actions, while non-UI provider operations remain documented as backend-only capabilities.
2026-06-01 09:58:20 +08:00
phamnazage-jpg
de33ff3492
feat(admin): add session-based portal login
2026-05-28 11:01:29 +08:00
phamnazage-jpg
03c4b5236f
chore(remote43): standardize stable crm repo root
2026-05-28 10:13:13 +08:00
phamnazage-jpg
3a00f1b859
feat(admin): publish provider drafts into pack repo
2026-05-28 07:30:02 +08:00
phamnazage-jpg
8d7aa925df
feat(admin): persist provider drafts in crm
2026-05-27 21:49:12 +08:00
phamnazage-jpg
ebd86a4256
feat(batch): add live reuse admin verification flow
2026-05-27 20:23:42 +08:00
phamnazage-jpg
02580cda0b
feat: organize scripts and add portal validation assets
2026-05-27 09:39:05 +08:00
phamnazage-jpg
85d495dd16
feat(control-plane): harden host-scoped reconcile and acceptance evidence
...
- add batch-scoped reconcile_runs persistence and queries
- route batch detail and reconcile writes through batch_id/host_id
- refresh production boards with host-scope acceptance artifacts
- include latest real-host acceptance evidence for self_service and subscription
2026-05-18 22:22:22 +08:00
phamnazage-jpg
71cbaf5fa6
test(project): achieve ≥70% package coverage across all internal packages
...
- store/sqlite: 75.4% (repos + db coverage)
- host/sub2api: 80.8% (httptest mock server, pure function tests)
- app: 74.2% (handler error paths, NewActionSet closures)
- pack: 72.4%
- provision: 75.2%
- access: 77.3%
- config: 94.7% (lookup mock tests)
All tests pass: build, vet, race, coverage gates.
2026-05-15 19:26:25 +08:00