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
385d48613a
fix: expose provider config editing in management
2026-06-05 23:01:50 +08:00
Codex Agent
d3ef88b58d
fix: trim folded progress from agent conversations
2026-06-05 22:54:40 +08:00
Codex Agent
cc21ad40cb
fix: enforce single hwlab api key env
2026-06-05 22:33:39 +08:00
Codex Agent
7637a43699
fix: preserve code agent final response text
2026-06-05 22:30:29 +08:00
Codex Agent
73d541fd58
fix: require explicit agentrun bundle source commit
2026-06-05 22:18:23 +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
483060a3ee
feat: add hwpod node native websocket dispatch
2026-06-05 19:26:13 +08:00
Codex Agent
3e7131f6ab
refactor: converge hwpod node-ops channel
2026-06-05 17:23:56 +08:00
Codex Agent
9a2c651c3c
feat: add v02 provider profile management
2026-06-05 17:14:59 +08:00
Codex Agent
5c87936c7f
docs: remove legacy auth residual gates
2026-06-05 14:59:11 +08:00
Codex Agent
d6769bf1d3
fix: remove v02 authorization residue
2026-06-05 14:00:13 +08:00
Codex Agent
c1df458c85
feat: wire hwpod target node-ops flow
2026-06-05 13:39:20 +08:00
Codex Agent
ac2d3001fa
fix: depollute v02 web performance telemetry
2026-06-05 13:03:09 +08:00
Lyon
41f537f46a
Merge pull request #907 from pikasTech/feat/issue903-performance-panel
...
v0.2 增加 WebUI 性能监控可视化面板
2026-06-05 12:04:33 +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
Codex Agent
f5be1c0361
feat: add v02 web performance dashboard
2026-06-05 12:00:23 +08:00
Codex Agent
c8a8aa505e
feat: add hwpod harness node-ops loop
2026-06-05 11:52:47 +08:00
Codex Agent
ab7d79c69a
feat: expose v02 webui performance metrics
2026-06-05 11:14:27 +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
Codex Agent
1162c0e5bd
fix(v02): report AgentRun result contract
2026-06-05 02:26:51 +08:00
Codex Agent
aeefb7660b
fix(v02): report AgentRun code agent health
2026-06-05 02:06:09 +08:00
Codex Agent
fd1b8c0e5a
fix(v02): remove legacy code agent control plane
2026-06-05 01:35:35 +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
df69e48115
fix(v02): persist chat owner messages ( #875 )
...
Co-authored-by: Codex Agent <codex@hwlab.local >
2026-06-05 00:21:47 +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
eca9dbaa9c
fix: persist expired code agent trace summaries ( #851 )
...
Co-authored-by: Codex Agent <codex@hwlab.local >
2026-06-04 20:40:36 +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
0370135a35
feat(k8s+tests): keycloak bootstrap Job + AgentRun actor trace tests
...
- new deploy/k8s/keycloak/keycloak-bootstrap-job.yaml: one-shot Job that waits for Keycloak, authenticates as admin, creates hwlab realm + hwlab-cloud-web OIDC client via REST API
- secret hwlab-cloud-web-client holds the OIDC client_secret used by cloud-api
- kustomization.yaml picks up the new Job and Secret
- access-control.test.ts: cloud api AgentRun trace records real actor.userId from OIDC-upserted user (issue 788 spec)
- access-control.test.ts: cloud api /v1/users/me returns actor with authMethod=api-key for HWLAB_API_KEY Bearer token
- 31 pass / 4 pre-existing fail
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
6a8e9b3d79
feat(agentrun): inject owner HWLAB_API_KEY into runner transient env
...
- submitAgentRunChatTurn resolves owner user API key via accessController.store.findActiveDefaultApiKeyForUser
- buildAgentRunRunnerJobInput accepts ownerApiKey; when present, removes HWLAB_DEVICE_POD_API_KEY and adds HWLAB_API_KEY as sensitive
- buildAgentRunTransientEnv no longer emits HWLAB_DEVICE_POD_API_KEY
- codex-stdio child env now reads HWLAB_API_KEY (not HWLAB_DEVICE_POD_API_KEY)
- server-code-agent-http codeAgentAuthEnv looks up user default API key; URL env vars still set unconditionally
- tests: code-agent-session-registry Codex child env carries only device-pod API key now checks HWLAB_API_KEY
- tests: server-agent-chat delegates v0.2 turns removes HWLAB_DEVICE_POD_API_KEY assertion
- 58 pass / 4 pre-existing fail
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
Codex Agent
3a55a4b99e
fix(cloud): expose persistent thread resume metadata
2026-06-04 13:05:03 +08:00
Lyon
f7e4c372ce
fix(cloud): restore running session active trace ( #811 )
...
Co-authored-by: Codex Agent <codex@hwlab.local >
2026-06-04 12:18:08 +08:00
Lyon
d5690ce2a5
fix(cloud): preserve selected conversation during terminal sync ( #809 )
...
Co-authored-by: Codex Agent <codex@hwlab.local >
2026-06-04 12:00:21 +08:00