q792602257 and Claude Opus 4.6
2169bb03d9
feat(cloud-console): task listing, attempt history, CORS, and console SPA
...
Implements the cloud-console OpenSpec change: adds GET /v1/tasks (filterable,
bounded pagination, tasks:read) and GET /v1/tasks/{id}/attempts (404 on unknown
task) to the platform SDK, with matching CloudClient methods and a closed-by-
default CLOUD_CONSOLE_CORS_ORIGINS allow-list wired through CloudControlConfig.
Ships an independent Vue 3 + Vite SPA at cloud-console/ that authenticates with
an operator-supplied bearer token held in sessionStorage, renders tasks with
attempt history, device pool, host registry, and the plugin registry with a
registration form.
Backend test suite: 438 passed (-m "not integration"); cloud-console typecheck
and production build both succeed. PostgreSQL-backed repository tests and
manual end-to-end verification remain pending external infrastructure.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-07-13 14:00:23 +08:00
q792602257
e61dcca801
feat(cloud): add edge host enrollment
2026-07-13 13:54:16 +08:00
q792602257
7b717a05a9
test(openspec): map cloud integration scenarios
2026-07-13 08:21:44 +08:00
q792602257
22d37ca95b
chore(cloud): verify integration change
2026-07-13 08:06:15 +08:00
q792602257
1f95d23beb
feat(cloud-sdk): authenticate client requests
2026-07-12 22:53:34 +08:00
q792602257
16bcbf5a27
feat(cloud-sdk): expose distributed task status
2026-07-12 19:57:03 +08:00
q792602257
8131c0124b
feat(cloud-api): add correlated lifecycle logging
2026-07-12 18:37:51 +08:00
q792602257
a24efc1043
feat(host-protocol): renew and complete leases
2026-07-12 18:15:04 +08:00
q792602257
c7f8d0c128
feat(host-protocol): long poll assignments
2026-07-12 18:12:33 +08:00
q792602257
efb754fbe7
feat(host-protocol): accept heartbeat snapshots
2026-07-12 18:10:42 +08:00
q792602257
b4cbd83dcd
feat(host-protocol): define internal API models
2026-07-12 18:07:42 +08:00
q792602257
7d22b5234d
feat(cloud-auth): require production credentials
2026-07-12 18:02:49 +08:00
q792602257
82b66f74a2
feat(cloud-auth): bind host principals
2026-07-12 17:58:20 +08:00
q792602257
71f0a892e3
feat(cloud-auth): enforce public scopes
2026-07-12 17:56:14 +08:00
q792602257
b916b394c7
feat(cloud-auth): verify scoped bearer tokens
2026-07-12 17:45:31 +08:00
q792602257
c58d9e5316
feat(cloud-scheduler): reap expired leases
2026-07-12 17:32:11 +08:00
q792602257
e1af4403f5
feat(cloud-scheduler): record terminal results
2026-07-12 17:25:57 +08:00
q792602257
1b15a8a218
feat(cloud-scheduler): renew active leases
2026-07-12 17:23:07 +08:00
q792602257
b0a5b1426f
feat(cloud-scheduler): claim host assignments
2026-07-12 17:20:51 +08:00
q792602257
ac7734c7dc
feat(cloud-scheduler): reserve devices atomically
2026-07-12 17:19:10 +08:00
q792602257
0a9392b7ea
feat(cloud-store): persist task lease history
2026-07-12 17:15:09 +08:00
q792602257
7f5f740e2a
test(cloud-store): verify schema migrations
2026-07-12 16:59:08 +08:00
q792602257
24d9dbf38b
feat(cloud-store): add Alembic baseline migration
2026-07-12 16:55:46 +08:00
q792602257
64aa9b39bc
feat(cloud-store): support SQLite and PostgreSQL engines
2026-07-12 16:53:02 +08:00
q792602257
05a5f0bfa7
refactor(cloud-store): adopt SQLAlchemy adapter
2026-07-12 16:51:03 +08:00
q792602257
ae29477f6a
feat(cloud-store): define repository contract
2026-07-12 16:48:07 +08:00
q792602257
638216d6e7
feat(cloud): validate control plane and host configuration
2026-07-12 16:45:12 +08:00
q792602257
bfd56fd2da
refactor(cloud): move package into workspace member
2026-07-12 14:11:51 +08:00