q792602257
b4cbd83dcd
feat(host-protocol): define internal API models
2026-07-12 18:07:42 +08:00
q792602257
a05465458c
test(cloud-auth): cover authorization failures
2026-07-12 18:05:30 +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
4cb116f527
test(cloud-scheduler): prove assignment concurrency
2026-07-12 17:42:20 +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
52d2a86a4c
test(cloud-store): verify repository contracts
2026-07-12 17:11:10 +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
5e98708a94
feat(host-agent): add workspace application entrypoint
2026-07-12 16:42:51 +08:00
q792602257
2af8909b29
feat(cloud-api): add workspace application entrypoint
2026-07-12 16:41:17 +08:00
q792602257
47dfc3b8c5
chore(cloud): verify workspace preconditions
2026-07-12 16:38:37 +08:00
q792602257
99ea1509ef
chore(openspec): add cloud control plane proposal
2026-07-12 14:30:29 +08:00
q792602257
c94b3efe87
docs(workspace): record packaging boundary
2026-07-12 14:29:55 +08:00
q792602257
2e2ca9dc7d
test(workspace): validate packaging specification
2026-07-12 14:25:58 +08:00
q792602257
a42362f4f8
test(workspace): verify runtime and console entrypoints
2026-07-12 14:25:07 +08:00
q792602257
f5cc86ccd7
test(workspace): pass full non integration suite
2026-07-12 14:23:58 +08:00
q792602257
b9e8a6dea4
test(workspace): verify isolated wheel installs
2026-07-12 14:22:53 +08:00
q792602257
d551a36f04
build(workspace): verify member wheel ownership
2026-07-12 14:21:39 +08:00
q792602257
d2f9567909
docs(workspace): document uv member workflows
2026-07-12 14:17:59 +08:00
q792602257
5db68bfa0d
test(workspace): verify member scoped commands
2026-07-12 14:16:39 +08:00
q792602257
2d7ea87d74
test(workspace): verify locked clean sync
2026-07-12 14:15:51 +08:00
q792602257
77a27dece3
build(workspace): lock workspace dependencies
2026-07-12 14:14:56 +08:00
q792602257
351b2c6637
test(workspace): verify distribution boundaries
2026-07-12 14:14:09 +08:00
q792602257
00bf5ee428
test(workspace): enforce cloud package ownership
2026-07-12 14:12:51 +08:00
q792602257
bfd56fd2da
refactor(cloud): move package into workspace member
2026-07-12 14:11:51 +08:00
q792602257
07b7c9fc48
build(workspace): link cloud platform to runtime
2026-07-12 14:09:54 +08:00
q792602257
b739f6d175
build(workspace): add cloud platform member
2026-07-12 14:09:08 +08:00
q792602257
10df245f66
build(workspace): initialize uv workspace root
2026-07-12 14:08:03 +08:00
q792602257
a868dd5fc8
chore(workspace): record packaging migration baseline
2026-07-12 14:06:54 +08:00
q792602257 and Claude Sonnet 5
61ff3b425d
feat(agent-runtime): add LLM-driven AI Planner with dual-provider tool calling
...
Replaces the stub Planner's fixed describe_screen/[] behavior with a real
decision-maker: AIPlanner uses native tool/function calling (Anthropic or
OpenAI, pluggable via AI_PLANNER_PROVIDER) to select exactly one grounded
action per turn, with an explicit finish_task(success, reason) tool for
completion/failure instead of an ambiguous "no tool call" signal. Default
disabled (AI_PLANNER_ENABLED=false) and additive; TaskRunner falls back to
the existing stub Planner unchanged when disabled.
Amends CONSTITUTION.md's Perception Boundary with one narrow exception:
only the AI Planner may receive the current step's raw screenshot bytes
alongside Scene, for vision-grounded coordinate grounding. Also fixes a
latent gap in TaskRunner.run(): observe/plan exceptions are now caught per
iteration and turned into a failed task with a failure_reason, instead of
propagating uncaught.
openspec change: ai-planner-runtime.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-12 13:48:50 +08:00
q792602257 and Claude Opus 4.6
b94abde92a
feat(skill-catalog-subscription): synced catalog + HTTP sync + MCP tools
...
Consumes the external Subscription Platform as source of truth for skill
content; reuses skills_learning domain models (extended with KnowledgeSkill)
and workflow.skill_exec resolver. HTTP/MCP deps land in api/ per
CONSTITUTION.md; synced skills use a physically separate SQLite file
(tasks/skills.sqlite3) to preserve the skill-authoring capability boundary.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-07-07 10:33:23 +08:00
q792602257
8e29fcf3c2
spec
2026-07-06 23:52:53 +08:00
q792602257
d899b875ce
cloud
2026-07-06 23:44:18 +08:00
q792602257
a453d9e6ba
multi agent
2026-07-06 23:23:44 +08:00
q792602257
1fb62f9d45
workflow
2026-07-06 23:15:30 +08:00
q792602257
c7ae2d86ec
feat: add skill learning runtime
2026-07-06 18:07:53 +08:00
q792602257
5658735bca
feat: checkpoint device agent runtime milestones
2026-07-06 17:24:03 +08:00
q792602257
02ef4d23f2
Implement Apex Agent MVP scaffold
2026-07-06 13:22:15 +08:00