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