Modular AirStack 3/9: reference stacks (wrap form), --stack dispatch, single-locus lint - #390
Open
andrewjong wants to merge 4 commits into
Open
Modular AirStack 3/9: reference stacks (wrap form), --stack dispatch, single-locus lint#390andrewjong wants to merge 4 commits into
andrewjong wants to merge 4 commits into
Conversation
…, single-locus lint
- stacks/{full_default,full_droan_cpu,full_macvo}: self-contained stack
folders (modules.repos w/ airstack_compat, flat wrap-form stack.launch.xml,
compose stub, README). full_macvo FIXES the broken
local_macvo_obstacle_avoidance.launch.xml wiring in the stack file
(correct local_-prefixed args, real perception/macvo/disparity topic,
launch_macvo actually enabled) — collapses the local_* variant explosion
into named stacks differing by include lines
- robot.launch.xml: stack_dir/stack_entry env-default args; stack group
replaces role groups when AIRSTACK_STACK_DIR set; legacy role path
byte-preserved. Compose: stacks/ volume + env passthrough in robot-base
- airstack up --stack <name>[:<entry>]: host-side validation, container-path
exports, effective-config lines; AUTONOMY_ROLE deprecation warning
- single-locus launch lint (unit mark): no remaps outside stacks/*/launch/,
frozen shrink-only allowlist (19 grandfathered files), description=
required on stack args. write-launch-file skill rewritten same commit
(canonical-default args, never remap in module files)
- wiring mark is stack-aware: --stack makes the golden stacks/<name>/wiring.md
- docs/development/stacks.md + nav; 8 new launch-intent contract tests
Unit suite: 294 passed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Captured from live isaacsim bring-ups @ d02a346: - full_default: 83 nodes / 405 edges — diff vs the legacy AUTONOMY_ROLE=full golden is IDENTICAL (machine-proven wrap-form equivalence) - full_droan_cpu: 84 nodes / 419 edges (CPU droan + live disparity_expansion) - full_macvo: 84 nodes / 407 edges — first working MACVO topology: droan's disparity_expander subscribes /perception/macvo/disparity (the wiring the broken legacy variant never achieved) These are the E2 flatten gates: the refactor must reproduce these graphs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Gap found by the asm_macvo extraction: the workflow ran module add/sync (layer plan only) but never 'module lock --build', so tier-2/3 Dockerfile.module / overlay layers went unbuilt and untested in module CI. The build step runs after trunk image-ensure (the chain builds FROM those bases); the zero-module identity rule keeps it a no-op for dep-free modules. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
Test Metrics —
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stack 3/9 · base:
rfc/s2-module-cli-layersStacks land: self-contained topology folders that make the launch graph a reviewable artifact. This PR introduces them in wrap form — graph-neutral by construction — so the flatten steps later in the stack can be gated on wiring equality.
What's inside
stacks/reference folders (full_default,full_droan_cpu,full_macvo): pinnedmodules.repos, an XML entry launch file, compose stub, README, and a CI-observedwiring.mdbaseline each.airstack up --stack <name>dispatch viaAIRSTACK_STACK_DIR/AIRSTACK_STACK_ENTRY, coexisting with the (then-current) role path.write-launch-fileskill rewritten in the same change.module lock --buildstep so tier-2 module Dockerfiles are actually built in CI.Validation
full_defaultvs the legacy full role — wiring diffidentical: trueon live Isaac bring-ups.--stack full_defaultliveliness+wiring green in one session; takeoff/hover/land green on the stack path.🤖 Generated with Claude Code