updates 33.1 56

This commit is contained in:
2026-08-10 03:44:50 -03:00
parent ef63b02554
commit 0b04516cbb

View File

@@ -160,10 +160,51 @@ make build newroom
|------|---------| |------|---------|
| modelgen | Generate models from config | | modelgen | Generate models from config |
| datagen | Generate test data (uses faker) | | datagen | Generate test data (uses faker) |
| tester | BDD/playwright test runner | | tester | HTTP contract test runner |
| graphgen | Generate navigable model graphs | | graphgen | Generate navigable model graphs |
| databrowse | SQL data browser | | databrowse | SQL data browser |
## Shared UI (`soleprint/common/ui`)
Upstream copy of the `soleprint-ui` package. `mpr/ui/framework` and
`meetus/ui/framework` are **downstream copies** synced by `ctrl/spr.py` — edit here,
never there, or the next sync overwrites the change.
```bash
cd soleprint/common/ui
pnpm install && pnpm typecheck && pnpm test
pnpm build # -> dist/soleprint-ui.js + dist/style.css
```
**The theme ships with the bundle.** Every component styles itself with
`var(--surface-0)` and friends from `src/tokens.css`, so `src/index.ts` imports
`src/theme.css` (tokens + `base.css`). A bundle without it renders broken, not merely
unbranded. Retheme by overriding the variables in `tokens.css`; don't inline colours
in components.
`dist/` and `node_modules/` are gitignored — the dist is an artifact a container
boots, not source. To hand someone a running artifact without the sources:
```bash
python ctrl/spr.py publish soleprint-ui <dest> --dist # bundle + manifest only
```
## Tests
**No test bodies are committed to core.** `soleprint/station/tools/tester/` ships the
base class, runner and UI; tests belong to a room at
`cfg/<room>/soleprint/station/tools/tester/tests/`.
Two rules, both in `tester/tests/test_template.py`:
1. **One suite, any environment** — a test states what the API promises, never who
implements it or where it runs.
2. **No helper framework tools** — stdlib `unittest` + `httpx`. No pytest fixtures,
no framework test client, no factories, no ORM or database access.
Django, where it appears, is an optional private DB editor via its admin — never the
framework, and never something a test reaches into.
## External Paths ## External Paths
| What | Path | | What | Path |
@@ -172,6 +213,16 @@ make build newroom
## Files Ignored ## Files Ignored
- `gen/` - Regenerate with `python build.py` - `gen/` - Regenerate with `make build [room]`
- `dist/` - Build artifact; regenerate with `pnpm build`
- `node_modules/`
- `fails/`, `def/` - Drafts - `fails/`, `def/` - Drafts
- `__pycache__/`, `.venv/` - `__pycache__/`, `.venv/`
## Known Broken (found, not yet fixed)
- `tester/tests/_dev/test_health.py` imports `..endpoints`, which does not exist in
core — the module is unimportable.
- Client leaks remain in `station/monitors/databrowse/` (README + `index.html`) and
`atlas/main.py` (`PAWPRINT_URL`, role labels). Core should carry no client
vocabulary; it belongs in `cfg/<room>/`.