You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Idea (deferred — captured from a design conversation)
Today behold's apply (M3) runs chant run --components itself (fine for local mode against Floci). But outside local mode, the CI pipelines are what do the apply — GitLab CI runs the generated per-component pipeline. So behold's role in prod is to trigger the pipeline and observe the resulting deployment, presenting the CI pipeline and the AWS deployment as one layer (the epic's thesis: the component DAG read two ways).
The shape (three distinct things, not two)
CI projection (static — what a pipeline would do) — stage / needs: / run-command per component. Already built (M1.2: CI projection facet per component #58): a per-component facet on the DAG. One layer. ✓
CI run status (a pipeline executing now) — jobs running/passed/failed. Should color the same DAG exactly like live AWS status does (M1.1: live AWS status per component, on Floci #57), because jobs = components by name (the existing join key). Still one layer.
CI run timeline (temporal detail — retries, logs, durations) — belongs in a separate run surface (like M3's structured-progress panel / the lanes view), not smeared on the spatial DAG.
The unifying principle: apply is executor-agnostic (a target concern, M2)
Local target → behold runs chant run --components itself (M3, done).
Prod target → behold triggers the CI pipeline; the pipeline's job events stream back as the same structured progress (jobs↔components by name); the same live-status join colors the same DAG.
behold stays the control plane (trigger + correlate pipeline→stacks) — it never applies to prod directly.
Concrete first slice (local, provable today)
behold triggers a GitLab pipeline via gitlab-ci-local against Floci (already the "Bring up GitLab CI" path in the M5 substrate strip), parses the run's job status, and colors the component DAG by live job status — so you can graph the pipeline and watch it run, correlated to the stacks it deploys. Then generalize the dial's "apply" to dispatch by target (local chant run vs trigger-CI).
Prereqs / relates to
The target lens (M2) already models targets as an array — the natural place for "who applies".
Idea (deferred — captured from a design conversation)
Today behold's apply (M3) runs
chant run --componentsitself (fine for local mode against Floci). But outside local mode, the CI pipelines are what do the apply — GitLab CI runs the generated per-component pipeline. So behold's role in prod is to trigger the pipeline and observe the resulting deployment, presenting the CI pipeline and the AWS deployment as one layer (the epic's thesis: the component DAG read two ways).The shape (three distinct things, not two)
needs:/ run-command per component. Already built (M1.2: CI projection facet per component #58): a per-component facet on the DAG. One layer. ✓The unifying principle: apply is executor-agnostic (a
targetconcern, M2)chant run --componentsitself (M3, done).Concrete first slice (local, provable today)
behold triggers a GitLab pipeline via
gitlab-ci-localagainst Floci (already the "Bring up GitLab CI" path in the M5 substrate strip), parses the run's job status, and colors the component DAG by live job status — so you can graph the pipeline and watch it run, correlated to the stacks it deploys. Then generalize the dial's "apply" to dispatch by target (localchant runvs trigger-CI).Prereqs / relates to
targetlens (M2) already models targets as an array — the natural place for "who applies".Deferred for now — the local, single-target flow is solid; this is the multi-target / CI-driven-apply evolution.