Files
agentic-mobile-control/openspec/changes/uv-workspace-packaging/proposal.md
T

30 lines
2.1 KiB
Markdown

## Why
The repository currently publishes the local device runtime, cloud modules, and integration adapters as one flat Python distribution with no lockfile. Introducing a uv workspace now gives the runtime and future cloud applications explicit package ownership, reproducible dependency resolution, and independently runnable entry points before distributed cloud behavior is added.
## What Changes
- Configure the repository as a uv workspace with the existing `device-agent-runtime` project retained as the root member.
- Extract the existing `cloud` package into a dedicated workspace distribution without changing its public Python import paths or runtime behavior.
- Establish workspace conventions that allow the cloud API and device host agent to be added as independently installable members by the subsequent cloud integration change.
- Declare internal dependencies through uv workspace sources and generate a committed `uv.lock` for reproducible development and CI environments.
- Preserve the existing Vue/Vite console as an npm-managed project outside the Python workspace.
- Preserve existing Runtime, REST, MCP, and test behavior during the packaging migration.
## Capabilities
### New Capabilities
- `workspace-packaging`: Defines the Python workspace membership, internal dependency direction, reproducible locking, and independently runnable project boundaries.
### Modified Capabilities
None. This change restructures packaging and dependency ownership without changing existing capability requirements.
## Impact
- Affects the root `pyproject.toml`, Python package locations, build metadata, import/package discovery configuration, development commands, CI commands, and the generated `uv.lock`.
- Existing local Runtime consumers continue to use the `device-agent-runtime` distribution and current import paths.
- Cloud code becomes an outer workspace dependency of the Runtime; inner packages such as `core`, `driver`, `device`, and `tools` remain unaware of cloud or transport concerns.
- No REST/MCP contract, task execution behavior, database schema, or frontend package-management behavior changes in this proposal.