phamnazage-jpg
13b88ba2e7
debug(gateway): add log to verify key admin_status at gateway
CI / Build & Test (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Security Scan (push) Waiting to run
CI / Docker Build (push) Waiting to run
CI / Release (push) Blocked by required conditions
2026-06-07 14:49:52 +08:00
phamnazage-jpg
37694f993f
fix(gateway): pass sqlite DSN to NewAPIHandlerWithAuth so gateway can open DB for key auth
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
2026-06-07 14:42:46 +08:00
phamnazage-jpg
6d6f950382
fix(gateway): add SubscriptionUserID to proxy chat request for managed key resolution
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
2026-06-07 14:16:44 +08:00
phamnazage-jpg
c86c8a17ca
feat(v3): add CRM gateway /v1/chat/completions with key auth + governance check
...
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
- POST /v1/chat/completions public route on CRM (not host pass-through)
- Bearer token → sha256 fingerprint → ListByFingerprint → governance check
- paused → 403 forbidden, retired/deleted → 403
- ProxyRouteChatCompletions to upstream
- NewAPIHandler/NewAPIHandlerWithAuth: optional dsn param for gateway SQLite access
- ListByFingerprint in user_keys_repo
2026-06-07 12:19:24 +08:00
phamnazage-jpg
6eec70d6a3
feat(v3): close key governance with subject-scoped selector and pause/resume on real host
...
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
* ensureSubjectHasAccess now uses real SubjectID, not fixed 'portal-user'
* CreateUserKey/ResetUserKey metadata (masked_preview, key_fingerprint) based on actual returned key
* PauseManagedSubscriptionAccess/ResumeManagedSubscriptionAccess update host user allowed_groups
* Remote43 hot-updated with singleton CRM (secondary instance killed to avoid SQLITE_BUSY)
* Fresh JWT issued for remote43 host adapter
* Real E2E: create=201, chat-before=200, pause=200, resume=200, chat-resumed=200
* Known gap: paused chat still 200 (host auth cache delay, not CRM code)
2026-06-06 22:25:46 +08:00
phamnazage-jpg
5b59ad7490
feat(vnext2): close user key self-service on real host
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
2026-06-05 19:58:02 +08:00
phamnazage-jpg
596a2a110c
feat(vnext2): add user key self-service 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
- PORTAL_KEY_EXPERIENCE.md: review from pending to approved
- KEY_SELF_SERVICE_API.md: review from pending to approved
- 0015_user_keys.sql: migration for key_records table
- user_keys_repo.go + test: SQLite repo (Create/ListByOwner/GetByID/UpdateStatus)
- key_self_service.go: HTTP handlers (POST/GET /api/keys, pause/resume/delete)
- key_self_service_svc.go: action wiring (buildUserKeyHandler)
- registered in ActionSet + NewAPIHandlerWithAuth
Note: full user auth requires host+CRM co-deployment.
Current skeleton accepts Bearer token for testing.
2026-06-05 11:45:17 +08:00
phamnazage-jpg
77b7f7f660
feat: harden runtime import and frontend verification workflows
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
2026-06-04 20:02:36 +08:00
phamnazage-jpg
5e3bd44e96
fix(metrics): 在主路由中注册 /metrics 端点
...
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
- 添加 metrics 包导入
- 在主 handler 中注册 GET /metrics 路由
2026-06-02 07:22:01 +08:00
phamnazage-jpg
8bbdffaf17
test: 补充真实功能验证测试
...
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
- ErrorMetrics 并发安全测试
- AsyncLogWriter 错误指标真实记录测试
- HTTP Server 超时配置真实验证
- Prometheus 指标 HTTP 端点真实测试
- 日志文件输出真实写入测试
2026-06-02 07:07:53 +08:00
phamnazage-jpg
28f377f2bd
feat(api): M-04 添加版本信息端点
...
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
- 添加 /version 端点返回版本信息
- 版本变量支持构建时 ldflags 注入
- 返回 version、commit、build_time、go_version
2026-06-02 07:00:15 +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
cbfaf4a28b
test(app): raise handler coverage above 70 percent
2026-05-30 16:40:55 +08:00
phamnazage-jpg
ef33762db5
feat(portal): add logical group packaging config
2026-05-30 10:54:32 +08:00
phamnazage-jpg
3bfd4cfc1c
feat(portal): add logical group guidance config
2026-05-30 10:38:59 +08:00
phamnazage-jpg
97fd72e273
feat(portal): add logical group catalog api
2026-05-29 19:39:41 +08:00
phamnazage-jpg
649eb13f30
feat(accounts): add explicit route binding workflow
2026-05-29 19:07:01 +08:00
phamnazage-jpg
c982c595b8
feat(accounts): add provider account admin view
2026-05-29 15:50:28 +08:00
phamnazage-jpg
b5343452cb
feat(accounts): add provider account inventory api
2026-05-29 14:43:34 +08:00
phamnazage-jpg
2896e62071
feat(routing): add route health admin view
2026-05-29 13:37:43 +08:00
phamnazage-jpg
ecdeedb103
feat(routing): add formal chat route endpoint
2026-05-29 13:17:56 +08:00
phamnazage-jpg
cffe3332ac
feat(routing): auto-supply managed proxy keys
2026-05-29 10:49:27 +08:00
phamnazage-jpg
9b1c6f43a6
feat(routing): add minimal chat proxy bridge
2026-05-29 10:31:09 +08:00
phamnazage-jpg
eb2242ca6f
feat(routing): add resolver failover fallback
2026-05-29 10:00:27 +08:00
phamnazage-jpg
66ad319ccb
feat(routing): add sticky-backed route resolver
2026-05-29 09:38:59 +08:00
phamnazage-jpg
98bd619ec8
feat(routing): add sticky runtime backends
2026-05-29 07:43:29 +08:00
phamnazage-jpg
6e0bd59e56
feat(routing): add route log writer and admin api
2026-05-28 21:24:05 +08:00
phamnazage-jpg
2818892255
feat(routing): add logical group admin api
2026-05-28 15:57:34 +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
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
83a05b4889
feat: add kimi a7m overlay workflow and remote43 validation
2026-05-26 07:50:43 +08:00
phamnazage-jpg
5e76fb20d0
Harden host deletion and test stability
2026-05-25 07:30:07 +08:00
phamnazage-jpg
80fd9dd873
Clarify subscription probe key semantics
2026-05-23 17:06:52 +08:00
phamnazage-jpg
bcc67c4a8a
Expand coverage for runtime and sqlite paths
2026-05-23 10:55:57 +08:00
phamnazage-jpg
2ad277743d
Expand app runtime coverage
2026-05-23 09:44:54 +08:00
phamnazage-jpg
7ae8caf216
Strengthen runtime and scheduler coverage
2026-05-23 09:39:02 +08:00
phamnazage-jpg
cfa1eaa904
Complete batch import v2 runtime and host capability recovery
2026-05-23 09:18:02 +08:00
phamnazage-jpg
eac860e72f
fix(api): wire batch import create-run entry pipeline
2026-05-22 16:12:52 +08:00
phamnazage-jpg
fb136ead7c
feat(api): add batch import v2 endpoints
2026-05-22 15:39:43 +08:00
phamnazage-jpg
3ba3244ea6
fix fresh-host acceptance and document real-host debugging learnings
2026-05-21 21:19:19 +08:00
phamnazage-jpg
ca1d448cc0
fix(provision): reconcile channel pricing and hosted access
2026-05-20 22:09:40 +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
phamnazage-jpg
9d52b22b8d
feat: bootstrap control plane app skeleton
2026-05-12 22:44:30 +08:00