jason.woltje
cfd2a19bd7
test(task): mission/task selftests — schema negatives + live runs ( #8 )
...
18 cases: validation negatives (unknown keys, versions, ids, prompt,
expectExact NUL, timeout range, missing/invalid mission, writes-nothing)
plus live cases: exact-marker success, wrong expectExact fails, distinct
run dirs, result.json contents, list output.
Closes #8
2026-09-02 19:57:34 -05:00
jason.woltje
d2a9e26395
feat(task): mission/task schemas, validation, and run runner ( #6 ) ( #7 )
...
- scripts/mosaic-task.mjs: validate | run | list
- Strict v1 schemas: unknown keys rejected; ids/prompt/expectExact/
timeoutSeconds bounds enforced; optional mission file resolved against
the task file and validated too
- run: executes through the config-driven container path with stdin
detached (issue #5 class), SIGKILL timeout (default 120s), trimmed
response capture
- Immutable run records under <dataRoot>/runs/r-<utcstamp>-<rand>/:
task.json + mission.json snapshots (write-once), stderr.txt, result.json
- expectExact gate: mismatch -> status failed, exit 1; result.json is
always written
- scripts/run-task.sh: load_config + bootstrap_runtime_dir before exec
- M2 scope: mission directives are snapshotted for provenance, not yet
injected into the runtime prompt (later policy layer)
Closes #6 , closes #7
2026-09-02 19:56:29 -05:00
jason.woltje
0734b1f3a5
fix(launcher): detach stdin on agent container run ( #5 )
...
pi print mode reads piped stdin until EOF; an attached terminal stdin
blocked the one-shot run forever. Automated contexts (closed stdin)
never exposed it. Request text comes from the compose command.
Proven: tail -f /dev/null | scripts/hello.sh now returns MOSAIC_HELLO_OK
in ~4s (previously timed out at 30s); verify.sh remains green.
Closes #5
2026-09-02 19:50:07 -05:00
jason.woltje
ce6420f3de
Merge M1: configuration-driven Hello World
...
Closes #1 , closes #2 , closes #3 , closes #4
config-hello-v1
2026-09-02 18:32:50 -05:00
jason.woltje
81f58b15c8
fix(launcher): ensure configured data root before verify mount; docs for M1 ( #4 )
...
- verify.sh now calls bootstrap_runtime_dir after load_config; previously a
reset-then-verify flow let Docker auto-create a root-owned mount source
- common.sh: fail with clear guidance when data root exists but is not writable
- README: configuration section, bootstrap usage, selftest entry point
- BUILD-LOG: Phase 5 entries with corrections
E2E (clean slate): 20/20 selftests; bootstrap idempotent; config-driven
hello/verify MOSAIC_HELLO_OK; negative marker exit 1; reset + rerun green;
config checksum unchanged across the entire flow.
Closes #4
2026-09-02 18:32:50 -05:00
jason.woltje
0c2113f710
test(config): sandboxed config-layer selftests ( #3 )
...
20 cases: bootstrap create/idempotency, missing config, malformed JSON,
unknown keys/version/backend/environment, relative and non-canonical
dataRoot, filesystem root, home dir, ancestor-of-config, control chars,
symlinked config file, env export resolution, validation-writes-nothing.
Closes #3
2026-09-02 18:30:46 -05:00
jason.woltje
900a506c1f
feat(config): wire launcher scripts and compose to config.json ( #2 )
...
- common.sh: load_config() exports MOSAIC_DATA_ROOT/PROVIDER/MODEL; fails closed
- compose.yaml: dataRoot mount and provider/model are required env (:? errors)
- build/hello/verify load config before any mutation; no silent bootstrap
- reset.sh: target resolved from configured dataRoot; all safety checks kept
Verified: compose fails without launcher env; verify/reset fail on missing
config; config-driven hello+verify pass; symlink refusal with sandboxed
config (canary survived); config checksum unchanged across reset+rerun.
Closes #2
2026-09-02 18:30:08 -05:00
jason.woltje
c3d29e796a
feat(config): config module with idempotent bootstrap and strict v1 validation ( #1 )
...
- scripts/mosaic-config.mjs: bootstrap | validate | env operations
- Exclusive creation (O_EXCL 'wx'); existing config validated, never rewritten
- Strict schema: unknown keys rejected, configVersion===1, backend docker only
- dataRoot guards: absolute, canonical, not root/home/ancestor-of-config
- MOSAIC_CONFIG override for sandboxed tests; exit codes 0/2/3
- scripts/bootstrap.sh: explicit bootstrap entry point
Closes #1
2026-09-02 18:28:14 -05:00
jason.woltje
c2365ae519
chore: baseline container POC and atomic foundation plan
...
- Containerized Pi hello-world proof (image mosaic-poc-agent:0.84.4, non-root)
- Four immutable contract fixtures loaded into a generated system prompt
- build/hello/verify/reset scripts with exact-match gating and reset safety
- Documented Pi discovery (v0.84.4, -p mode, --system-prompt, container auth)
- Append-only BUILD-LOG with corrections; deferred layers in LAYERS.md
- Architecture plan: docs/plans/2026-09-02_atomic-mosaic-foundation.md
poc-container-hello-v0
2026-09-02 18:24:36 -05:00
orch-01
d6302f8e6f
docs: make Portainer optional deployment path ( #1492 )
ci/woodpecker/push/publish Pipeline was successful
2026-09-02 23:23:07 +00:00
marcie and orch-01
9aa4983cf2
fix: use canonical dogfood seat identity ( #1490 )
...
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: marcie <[email protected] >
2026-08-30 23:43:22 +00:00
marcie and orch-01
736b0affc1
compose: add wrapper-first dogfood workspace ( #1488 )
...
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: marcie <[email protected] >
2026-08-30 22:29:30 +00:00
orch-01
e18d13d36f
fleet: split-home-safe mosaic launcher (T110, P5-RM-009 stack side) ( #1480 )
ci/woodpecker/push/publish Pipeline was successful
2026-08-30 10:05:40 +00:00
marcie and orch-01
60bc5d2022
compose: pin MOSAIC_STORAGE_TIER=standalone (A5d formal-run fix) ( #1486 )
...
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: marcie <[email protected] >
2026-08-30 07:49:35 +00:00
marcie
ea91cfc421
compose: stack profile — one-command standalone deployment (A5) ( #1485 )
ci/woodpecker/push/publish Pipeline was successful
2026-08-30 06:03:39 +00:00
marcie
acf640d00f
docs: containerization plan + PRD D15 (tiered deployment, standalone v1 bar) ( #1484 )
ci/woodpecker/push/publish Pipeline was successful
2026-08-30 05:21:42 +00:00
fred and marcie
431ead3a18
feat(gateway,cli): agent enrollment command family (M4-4b) ( #1483 )
...
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: fred <[email protected] >
2026-08-30 04:30:05 +00:00
fred
143ba0f57a
db: agent enrollment schema (M4-4a, migration 0021) ( #1482 )
ci/woodpecker/push/publish Pipeline was canceled
2026-08-30 01:47:06 +00:00
fred
ee815a72b1
docs: agent enrollment command family v1 design (M4-4-0) ( #1481 )
ci/woodpecker/push/publish Pipeline was canceled
2026-08-30 01:21:00 +00:00
marcie and orch-01
94d626dff9
mosaic comms: socket resolution is tool-owned (B2) ( #1476 )
...
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: marcie <[email protected] >
2026-08-29 23:35:37 +00:00
marcie and orch-01
ee6c842918
R3: --body-file <path>/- across body/comment carriers ( #1474 )
...
ci/woodpecker/push/publish Pipeline was canceled
Co-authored-by: marcie <[email protected] >
2026-08-29 22:49:20 +00:00
marcie and orch-01
ba3b854d50
D1/D3: --number canonical on issue wrappers, --labels alias on list wrappers ( #1475 )
...
ci/woodpecker/push/publish Pipeline was canceled
Co-authored-by: marcie <[email protected] >
2026-08-29 22:29:16 +00:00
fred
c7a7fd07cc
brain/gateway: prohibit mission_tasks.status as a write source (M4-3a phase 1) ( #1479 )
ci/woodpecker/push/publish Pipeline was canceled
2026-08-29 21:59:13 +00:00
fred
5399c6b7e7
docs: P0 field-map currency verification at next@abb0c936 (M4-3a-0) ( #1478 )
ci/woodpecker/push/publish Pipeline was canceled
2026-08-29 21:17:05 +00:00
marcie and orch-01
e09b8783b4
P1b: read-only viewers join the R1/R4 usage contract ( #1472 )
...
ci/woodpecker/push/publish Pipeline was canceled
Co-authored-by: marcie <[email protected] >
2026-08-29 21:03:07 +00:00
marcie and orch-01
abb0c93601
framework tools/tmux: agent-send socket default resolution + ambiguity guard (B1) ( #1466 )
...
ci/woodpecker/push/publish Pipeline failed
Co-authored-by: marcie <[email protected] >
2026-08-29 20:25:50 +00:00
marcie and orch-01
e67cced273
mosaic fleet logins: per-seat credential pass-through (P4 gap closure) ( #1473 )
...
ci/woodpecker/push/publish Pipeline was canceled
Co-authored-by: marcie <[email protected] >
2026-08-29 20:05:23 +00:00
fred
635cb1f666
docs: contract 2 Amendment 1 — company-CRUD capability (S2 follow-up) ( #1477 )
ci/woodpecker/push/publish Pipeline was canceled
2026-08-29 19:34:48 +00:00
marcie and orch-01
09d24b9275
pr-merge --base-line: gated intra-line exception (B5) ( #1471 )
...
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: marcie <[email protected] >
2026-08-29 18:14:40 +00:00
marcie and orch-01
ed4c543872
mosaic coord: board subcommand + roll alias (P3 gap closure) ( #1470 )
...
ci/woodpecker/push/publish Pipeline was canceled
Co-authored-by: marcie <[email protected] >
2026-08-29 17:52:30 +00:00
fred
215faeda0a
feat(hierarchy): M4-1b-ii hierarchy command family, grant evaluation, visibility ( #1465 )
ci/woodpecker/push/publish Pipeline was canceled
2026-08-29 16:54:39 +00:00
orch-01
5125fe21b0
p0 line landing: coord board/roll + wrapper usage contract + dispatch layer (successor to #1467 ) ( #1468 )
...
ci/woodpecker/push/publish Pipeline was canceled
Co-authored-by: orch-01 <[email protected] >
2026-08-29 16:24:08 +00:00
marcie and orch-01
41e8046371
framework tools/git: issue-comment R1/R4 usage-error contract (sync from brain) ( #1462 )
...
ci/woodpecker/push/publish Pipeline failed
Co-authored-by: marcie <[email protected] >
2026-08-29 01:58:42 +00:00
fred
6e16675ea2
docs: deployment mode and conversion contract (S2 contract 6) ( #1439 )
ci/woodpecker/push/publish Pipeline was successful
2026-08-28 22:57:11 +00:00
fred
19ebc422aa
docs: tool-gateway mapping contract (S2 contract 5) ( #1438 )
ci/woodpecker/push/publish Pipeline was successful
2026-08-28 22:04:03 +00:00
fred
bd749831b1
docs: company visibility classes (Ruling 4b amendment, contracts 1+3) ( #1461 )
ci/woodpecker/push/publish Pipeline was successful
2026-08-28 20:17:35 +00:00
fred
f8e1b43b5b
docs: RBAC grant model contract (S2 contract 2) ( #1436 )
ci/woodpecker/push/publish Pipeline is running
2026-08-28 19:09:17 +00:00
fred
2148c20d26
feat(hierarchy): audit event + outbox machinery (M4-1b-i, contract 1 §5.2) ( #1460 )
ci/woodpecker/push/publish Pipeline was successful
2026-08-28 02:22:53 +00:00
fred
5964dab891
feat(db): hierarchy record class schema + witnesses (contract 1, M4-1a) ( #1459 )
ci/woodpecker/push/publish Pipeline was successful
2026-08-28 00:42:35 +00:00
orch-01
bdb903cf69
docs: T78 official CLI capability migration contract ( #1458 )
ci/woodpecker/push/publish Pipeline was successful
2026-08-27 19:53:51 +00:00
fred
bec2eb118b
docs: API contract artifacts contract (S2 contract 9) ( #1443 )
ci/woodpecker/push/publish Pipeline was successful
2026-08-27 19:18:39 +00:00
fred
07624140e4
docs: hierarchy schema contract (S2 contract 1, D2) ( #1435 )
ci/woodpecker/push/publish Pipeline was canceled
2026-08-27 16:39:15 +00:00
fred
1c79af25d4
fix(mosaic): retry the Invariant R pi version probe under CI load ( #1441 )
ci/woodpecker/push/publish Pipeline was canceled
2026-08-27 16:38:53 +00:00
fred
e605c83b27
ci(web): Phase P6 — vite build + headless E2E gate on every trunk merge ( #1445 ) ( #1454 )
ci/woodpecker/push/publish Pipeline was successful
2026-08-27 15:26:10 +00:00
fred
b5ee692843
P5: SPA cutover — retire Next.js, gateway serves the Vite bundle ( #1444 ) ( #1453 )
ci/woodpecker/push/publish Pipeline was successful
2026-08-27 13:06:49 +00:00
fred
bf8bc2128d
fix(docker): copy scripts/ into appservice builder before pnpm install ( #1452 )
ci/woodpecker/push/publish Pipeline was successful
2026-08-27 11:28:47 +00:00
fred
01904b8f69
docs: custody pointer and consent schema contract (S2 contract 7) ( #1440 )
ci/woodpecker/push/publish Pipeline failed
2026-08-27 10:39:32 +00:00
fred
676900bd46
docs: onboarding wizard contract (S2 contract 3) ( #1437 )
ci/woodpecker/push/publish Pipeline was canceled
2026-08-27 10:39:23 +00:00
fred
a3b0770205
docs: roll-up projection contract (S2 contract 8) ( #1442 )
ci/woodpecker/push/publish Pipeline was canceled
2026-08-27 02:10:12 +00:00
fred
2a30c68b84
docs: identity account-lifecycle contract (S2 contract 4) ( #1433 )
ci/woodpecker/push/publish Pipeline is running
2026-08-27 00:13:49 +00:00