Confirm that BrightVision treats the superproject root as the workspace and correctly edits files in the parent tree and the cecli/ submodule.
Primary validation is automated — agents and CI should not depend on manual GUI steps for daily work.
cd /path/to/BrightVision
git submodule update --init --recursive cecli
source activate.sh- Workspace for tests and headless sessions must be the repo root (
BrightVision/), notcecli/alone. - Submodule must be on a real commit:
git -C cecli status.
From superproject root (after source activate.sh):
yarn dogfood:agent
# or faster preflight only:
yarn dogfood:checkThis runs, among other checks:
| Check | Proves |
|---|---|
yarn verify:submodule |
Parent + cecli/ discovery |
tests/core/test_superproject_dogfood.py |
RepoSet, Session.create on superproject paths |
tests/core/test_superproject_integration.py |
Integration-level superproject behavior |
yarn test:e2e:integration |
Live :8741 + workspace fixtures (in dogfood:gate) |
yarn test:git-workspace
yarn test:bright-corescripts/verify_submodule_workspace.py checks parent bright_vision_core/ + cecli/ submodule discovery.
Use yarn tauri dev only when validating native shell behavior or before a release announcement. Not required when yarn dogfood:agent is green.
Settings / welcome workspace = superproject root.
- Start session with workspace = superproject root.
-
/add bright_vision_core/session.py(or picker) — file enters context without “not a normal file” on the repo root. -
/add cecli/cecli/main.py— submodule file enters context. - Repo map / scan completes without fatal errors (progress bar may run).
- Ask for a trivial change in cecli, e.g. a comment in
cecli/cecli/main.py(must be a tracked file in the submodule). - Model emits SEARCH/REPLACE (or applies via engine); chat shows Proposed vs Applied correctly.
-
git -C cecli diffshows the change on disk when Applied. - Git tab /
done.edited_fileslists a path undercecli/.
- If auto-commit enabled: commit lands in submodule repo when only submodule files changed (or superproject gitlink update — document actual behavior).
- Undo from UI reverts the last agent commit batch without breaking parent repo.
-
/addbothsrc/App.tsxandbright_vision_core/http_api.py(and optionallycecli/cecli/main.py). - Single turn that touches both trees (or two turns) — both paths editable, no wrong-repo writes.
yarn dogfood:agent| Symptom | Likely cause |
|---|---|
| “Skipping … not a normal file” on workspace root | Empty fnames wrongly included directory (fixed in session — re-verify). |
| Edits only in chat, not on disk | Proposed SEARCH/REPLACE not applied; confirm / yes / format. |
| Changes in wrong repo | Workspace pointed at submodule only instead of superproject. |
| No submodule in repo map | Gitlink 160000 excluded by design — use /add on real files under submodule. |
yarn dogfood:agentgreen (or equivalent:dogfood:check+dogfood:gate+ integration when.venvexists).- All sections A–D pass on macOS via Vision UI — optional, before releases only.
See DOGFOOD.md for the agent-first self-dev loop.