Commit Graph

94 Commits

Author SHA1 Message Date
lyon bc9ee41d83 feat(workbench): add read-only API read model 2026-06-17 11:12:04 +08:00
lyon 1527a992c3 fix: align AgentRun reuse assertions with spec 2026-06-17 00:56:21 +08:00
lyon 62cc77b10b fix: harden user-billing login transient handling 2026-06-17 00:33:48 +08:00
lyon e0ac07c2f5 fix: make session rail use stateless list authority 2026-06-16 18:31:45 +08:00
lyon 355bfcdc00 fix(api): prefer current turn trace in conversation summary 2026-06-16 15:01:13 +08:00
lyon 20c26246f3 fix(web): restore running code agent sessions after refresh 2026-06-16 14:44:38 +08:00
lyon a677f0bb9f fix: sync workbench session tab status 2026-06-16 13:48:12 +08:00
lyon c5bd542c30 fix: make workbench session timestamps user-driven 2026-06-16 07:03:00 +08:00
lyon 6173b5e5c6 fix: mark evicted agent sessions non-reusable 2026-06-16 03:45:33 +08:00
lyon 1a15863f9d fix: preserve restored session markdown 2026-06-15 23:03:20 +08:00
Lyon b41bae1c81 fix: preserve existing agent conversation messages (#1282) 2026-06-15 21:36:26 +08:00
Lyon ce7c2658cf fix: unify workbench conversation message persistence (#1281) 2026-06-15 21:28:31 +08:00
lyon c84ee72eb9 feat: add v03 user billing entitlements 2026-06-14 15:34:13 +08:00
lyon 1b895a5b56 fix: defer AgentRun code agent billing until terminal result 2026-06-14 13:22:35 +08:00
lyon da268da85c fix: preserve user-billing usernames 2026-06-14 11:55:44 +08:00
lyon 7823bb7a95 feat: 补齐 v03 用户管理 Web parity 2026-06-14 11:04:52 +08:00
Lyon 3f8fc6b80c feat: connect cloud api code agent billing (#1139) 2026-06-13 20:19:07 +08:00
Codex Agent 6cae643161 fix: remove legacy trace fallback paths 2026-06-06 13:55:03 +08:00
Codex Agent 1830df467e fix: unify AgentRun trace result authority 2026-06-06 13:08:23 +08:00
Codex Agent c80493f240 fix: validate trace result provenance 2026-06-06 12:03:29 +08:00
Codex Agent aa06af6a91 fix: preserve latest trace during historical repair 2026-06-06 11:40:21 +08:00
Codex Agent 7c6df8d9b4 fix: index historical AgentRun traces 2026-06-06 11:21:00 +08:00
Codex Agent 4a22efb81a fix: detect whitespace-folded progress replies 2026-06-05 23:23:27 +08:00
Codex Agent fcd15b49d1 fix: trim message-only folded progress 2026-06-05 23:12:18 +08:00
Codex Agent d3ef88b58d fix: trim folded progress from agent conversations 2026-06-05 22:54:40 +08:00
Codex Agent 7637a43699 fix: preserve code agent final response text 2026-06-05 22:30:29 +08:00
Lyon 8ae0f55463 fix: repair webui refresh trace layout (#938)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-05 22:10:14 +08:00
Lyon 318df8597d fix: show inherited admin tool authority (#937)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-05 22:00:36 +08:00
Codex Agent a3ffd45e55 fix: enforce api key auth boundary 2026-06-05 21:58:16 +08:00
Lyon 2adc2f678f fix: restore bootstrap admin authority (#935)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-05 21:44:13 +08:00
Codex Agent 3e7131f6ab refactor: converge hwpod node-ops channel 2026-06-05 17:23:56 +08:00
Codex Agent d6769bf1d3 fix: remove v02 authorization residue 2026-06-05 14:00:13 +08:00
Lyon fc411b00f8 fix: remove legacy device pod grants authority (#906)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-05 12:02:51 +08:00
Lyon 48e3d24ad6 fix: converge v02 authorization on OpenFGA (#899)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-05 11:11:15 +08:00
Codex Agent cf722efd06 feat: add v02 OpenFGA access management 2026-06-05 09:39:49 +08:00
Lyon 6422487444 fix(v02): preserve owner conversation messages (#880)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-05 01:07:49 +08:00
Lyon 0c10056c22 fix(v02): rebuild terminal user messages (#878)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-05 00:41:06 +08:00
Lyon b6615c2abf fix(v02): preserve terminal workspace trace state (#874)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-05 00:00:04 +08:00
Lyon 1e085691e6 fix: repair persisted conversation snapshots (#855)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-04 20:59:10 +08:00
Lyon 6a79bc8f15 fix(v02): repair persisted final response fallback (#840)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-04 18:18:00 +08:00
Lyon be557c09bc fix(v02): repair final response status (#837)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-04 17:45:25 +08:00
Lyon 6c6a64b414 fix(v02): honor HTTP session cookie security (#831)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-04 16:59:15 +08:00
Lyon 7b2f4fa45f fix: wait for device-pod build verify output (#830)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-04 16:23:35 +08:00
Codex Agent baa7289ca0 fix(v02): widen device-pod job output visibility 2026-06-04 16:16:56 +08:00
Lyon 9928954ea6 feat: add device-pod build verify (#827)
Co-authored-by: Codex Agent <codex@hwlab.local>
2026-06-04 16:11:00 +08:00
Codex Agent 37f1b6af22 fix: support device-pod filename rg 2026-06-04 15:56:08 +08:00
Codex Agent e64ee92fb1 fix(v0.2): align Keycloak auth to HTTPS session API key 2026-06-04 15:01:30 +08:00
Codex 84cca71bef feat(cloud-api): v0.2 OIDC login/callback (state, nonce, user upsert) 2026-06-04 15:01:30 +08:00
Codex 49dc7cc6e1 feat(cloud-api): v0.2 24h Web session + Secure cookie
- SESSION_MAX_AGE_SECONDS 7d -> 24h
- Cookie now sets Secure + SameSite=Lax (preserves HttpOnly)
- /v1/auth/session exposes authMethod, sessionExpiresAt, sessionTtlSeconds
- setSessionCookie/clearSessionCookie use new builders
- New test covers first-admin, /auth/login and /auth/logout cookie shape + expiresAt
2026-06-04 15:01:30 +08:00
Codex 13c779ed11 feat(cloud-api): v0.2 user API key auth (api_keys table + Bearer hwl_live_)
Adds the user API key foundation called out in #788:

- New api_keys table with idx_api_keys_user and idx_api_keys_prefix
- users extended with auth_provider/keycloak_issuer/keycloak_sub/email/last_login_at
- Authorization: Bearer hwl_live_... resolves to the same AuthPrincipal
- /v1/api-keys, /v1/api-keys/default, /v1/api-keys/{id}/regenerate, DELETE /v1/api-keys/{id}
- First-admin and /auth/login bootstrap a Default API key
- Short-test mode keeps display_secret; production化 will switch to hash-only later
- Legacy HWLAB_DEVICE_POD_API_KEY and Bearer <session-token> paths preserved
- 4 new access-control.test.ts cases

Refs pikasTech/HWLAB#788
2026-06-04 15:01:30 +08:00