Remove run source tree from browser repo

This commit is contained in:
npc0-hue
2026-07-14 17:23:06 +08:00
parent 4f33f761a3
commit a57a5dbfcf
61 changed files with 118 additions and 5402 deletions
@@ -0,0 +1,2 @@
schema: spec-driven
created: 2026-07-14
@@ -0,0 +1,25 @@
# Design
## Repository Boundary
The browser repository remains responsible for `platform/`, `platform_web/`, and `plugins/`. The machine-side executor implementation is owned by `git@git.npc0.com:admin343/run.git`.
Browser-side code can still expose platform APIs for run endpoints, jobs, logs, artifacts, and runtime package distribution. Those are platform contracts, not embedded run implementation code.
## Local Development
Local debug workflows use `RUN_REPO_DIR` to find an external run checkout. The default points to `../run`, matching a sibling clone beside this repository:
```bash
git clone git@git.npc0.com:admin343/run.git ../run
```
If `RUN_REPO_DIR` is missing or does not contain a run `go.mod`, local debug scripts fail with a clear message instead of assuming `browser/run`.
## Docker Compose
The compose file keeps the run service for all-in-one local deployment, but its build context points at `${RUN_REPO_DIR:-../run}` and uses the external repository's `Dockerfile`.
## Structure Validation
`scripts/check-structure.sh` validates browser-owned roots only. It no longer requires run source paths.
@@ -0,0 +1,21 @@
# Split run into independent repository
## Summary
Remove the `run/` source tree from the browser repository now that the executor lives in `git@git.npc0.com:admin343/run.git`.
## Motivation
The run executor has its own repository and release boundary. Keeping the full source tree duplicated inside `browser.git` creates two owners for the same implementation and makes future commits ambiguous.
## Scope
- Remove tracked `run/` files from this repository.
- Update root governance, README, Docker Compose, local debug scripts, and structure checks to treat run as an external checkout.
- Keep platform-side run protocol/API contracts in `platform/` because browser still owns the platform control plane.
## Out of Scope
- Changing run protocol semantics.
- Moving platform API routes or frontend run management screens.
- Rewriting historical OpenSpec records that describe earlier monorepo milestones.
@@ -0,0 +1,19 @@
## ADDED Requirements
### Requirement: Browser repository uses external run implementation
The browser repository SHALL NOT store the machine-side run executor source tree. The run executor implementation SHALL live in the independent repository `git@git.npc0.com:admin343/run.git`.
#### Scenario: Browser root is inspected
- **WHEN** a contributor lists first-class implementation roots in the browser repository
- **THEN** the roots MUST be `platform/`, `platform_web/`, and `plugins/`
- **AND** `run/` MUST NOT be required as a browser-owned source directory
#### Scenario: Local debug needs a run worker
- **WHEN** a local debug or Docker workflow needs to start run
- **THEN** it MUST locate run through `RUN_REPO_DIR` or a documented sibling checkout
- **AND** it MUST fail with a clear setup message when the external checkout is missing
#### Scenario: Structure validation runs
- **WHEN** `scripts/check-structure.sh` runs in the browser repository
- **THEN** it MUST validate browser-owned platform, frontend, plugin, and governance paths
- **AND** it MUST NOT require files under `run/`
@@ -0,0 +1,8 @@
# Tasks
- [x] Add OpenSpec proposal/design/spec for the repository split.
- [x] Remove `run/` from browser-owned project roots and structure checks.
- [x] Update README, local debug scripts, and Docker Compose to use `RUN_REPO_DIR`.
- [x] Remove tracked `run/` source files from `browser.git`.
- [x] Run `scripts/check-structure.sh`.
- [x] Run `openspec validate split-run-into-independent-repository --strict`.