| **D7–D8** Deployment, projects | partial | Runs from a venv as a systemd unit on this box; project entries in config (M1.4); egress not enforced |
| **D7–D8** Deployment, projects | partial | Bring-up runs `nisse-dev`'s image under systemd on this box, `nisse-review` from a venv; project entries in config (M1.4); egress not enforced |
| **O**, **X** | none | No container image yet |
| **O**, **X** | partial | `nisse-dev` has its image (M1.5); `nisse-review` doesn't yet (M7.6); nothing runs on the agent host |
| `specs/` | done for now | `loop.qnt` (the architecture, #91); `orchestrator.qnt` went with `control.py` (M2.8) |
| `specs/` | done for now | `loop.qnt` (the architecture, #91); `orchestrator.qnt` went with `control.py` (M2.8) |
---
---
@@ -86,6 +86,11 @@ Only `nisse-dev` has real code; `nisse-core` and `nisse-ops` are placeholders.
(`-k`) or diagnosed (`--lf`); `scripts/e2e.sh` reports what a run spent. Manual
(`-k`) or diagnosed (`--lf`); `scripts/e2e.sh` reports what a run spent. Manual
live runs are for the new loop's first runs and phase ends. Findings are filed as
live runs are for the new loop's first runs and phase ends. Findings are filed as
issues and either fixed before moving on or deliberately deferred.
issues and either fixed before moving on or deliberately deferred.
- **Every agent is its own container image** (X1), since that's how each one
runs on the agent host: built from the repository's `Dockerfile`, published by
`release.yml` to `gitea.dongar.net/dev/<agent>`, and tested over the image the
way `nisse-dev`'s is (M1.5). A new agent's phase includes its image, before the
agent host is ready for it, and its bring-up runs from that image.
- **The Quint model moves with the loop:** `loop.qnt` models the architecture,
- **The Quint model moves with the loop:** `loop.qnt` models the architecture,
and its properties are tests (the property walk), changed in the same PR as a
and its properties are tests (the property walk), changed in the same PR as a
rule they cover.
rule they cover.
@@ -541,7 +546,8 @@ Terraform isn't running; the operator is planning both, Terraform with
hand (Ubuntu 24 now, 26 soon), with `vm ready` for a rebuilt one's host key.
hand (Ubuntu 24 now, 26 soon), with `vm ready` for a rebuilt one's host key.
**M6.1 The agent host.** *Needs discussion.* Containers, volumes, snapshots,
**M6.1 The agent host.** *Needs discussion.* Containers, volumes, snapshots,
per-agent networks (X1, X2, X4).
per-agent networks (X1, X2, X4). Each agent runs there from its own published
image (§3).
**M6.2 Build VMs by Terraform.** *Needs discussion.* The template, VLAN and egress
**M6.2 Build VMs by Terraform.** *Needs discussion.* The template, VLAN and egress
(D7, X2), collection when idle.
(D7, X2), collection when idle.
@@ -718,9 +724,18 @@ of earlier points, replies on threads, the round cap and its reset, `stop` and
L6 above. Each cut fitting still makes is logged (`context.trimmed`).
L6 above. Each cut fitting still makes is logged (`context.trimmed`).
Tests: `test_compact.py` in nisse-core.
Tests: `test_compact.py` in nisse-core.
**M7.6 Deployment.** *Waits for the agent host (Phase 6).* Its image, container,
**M7.6 `nisse-review`'s image.** *Pre-approved.* Doesn't wait for the agent
Gitea account and secrets (R5). The image needs `git`, and `scratch/` a
host. Its own image, as `nisse-dev`'s (M1.5, §3): a `nisse-review` target in the
persistent volume, so clones outlive a restart.
`Dockerfile`, running as its own user, with state in a volume, configuration
mounted read-only and secrets as environment variables. The image needs `git`,
and `scratch/` a persistent volume, so clones outlive a restart. `release.yml`
publishes `gitea.dongar.net/dev/nisse-review` beside `nisse-dev`, and
`review-bringup.sh` runs the image instead of a virtualenv.
- Acceptance: a release publishes both images, and the review end-to-end tests
run over the published `nisse-review` image.
**M7.7 Deployment.** *Waits for the agent host (Phase 6).* Its container on the
agent host, Gitea account and secrets (R5).
### Phase 8 — `nisse-ops`
### Phase 8 — `nisse-ops`
@@ -729,8 +744,9 @@ credentials (L12), with masking what an API returns as #144; search-then-dispatc
meta-tools are avoided, not ruled out (X3). **M8.2 Approved step sequences** (O2).
meta-tools are avoided, not ruled out (X3). **M8.2 Approved step sequences** (O2).
**M8.3 Ops intake and duties** from the infrastructure repository (O5), taking over
**M8.3 Ops intake and duties** from the infrastructure repository (O5), taking over
the Terraform the operator is writing now. **M8.4 The ops tool VM and deployment**
the Terraform the operator is writing now. **M8.4 The ops tool VM and deployment**
(O6). **M8.5 Requests between agents:** `nisse-dev` asking for build VMs (L1, O5).
(O6); its own image comes with its first slice, as every agent's does (§3).
All *needs discussion*.
**M8.5 Requests between agents:** `nisse-dev` asking for build VMs (L1, O5). All
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.