NS7 slice: Implement named build profiles #37

Closed
opened 2026-06-20 23:28:21 +00:00 by tmk241 · 1 comment
Owner

OBJECTIVE: Add mim-min, mim-code, and mim-full build targets over source layers with clear excluded-capability diagnostics.

AUTHORITY: Parent #7 NS7: V1 release hardening and rollout; PRODUCT.md; REQUIREMENTS.md (PRODUCT.md; req: governance/001-005; all v1 requirement rows as release gates).

AGENT AUTHORITY:

  • Delivery authority: local-commit
  • Tracker authority: this issue may be commented and closed when acceptance passes.
  • Handoff state: committed clean, tracker commented/closed.

PARENT: #7 via explicit issue link and parent checklist.

SCOPE: The smallest source/docs/tests needed to make this behavior real and verified.

BOUNDARIES: No combinatorial feature flags.

ACCEPTANCE: Each target builds; excluded capabilities return not built in this profile; no public per-feature flag matrix appears.

VERIFICATION: Run the cheapest command that proves acceptance. Include regular tests for the intended payoff and adversarial tests for realistic failure, boundary, or regression cases. If no implementation test command exists yet, create/record the canonical command in AGENTS.md as part of the slice.

BLOCKERS: none

GOAL: Implement this vertical slice to the ACCEPTANCE above, keep the repo clean, cite relevant req: anchors in code/tests where applicable, and close only after verification passes.

OBJECTIVE: Add `mim-min`, `mim-code`, and `mim-full` build targets over source layers with clear excluded-capability diagnostics. AUTHORITY: Parent #7 `NS7: V1 release hardening and rollout`; PRODUCT.md; REQUIREMENTS.md (PRODUCT.md; req: governance/001-005; all v1 requirement rows as release gates). AGENT AUTHORITY: - Delivery authority: local-commit - Tracker authority: this issue may be commented and closed when acceptance passes. - Handoff state: committed clean, tracker commented/closed. PARENT: #7 via explicit issue link and parent checklist. SCOPE: The smallest source/docs/tests needed to make this behavior real and verified. BOUNDARIES: No combinatorial feature flags. ACCEPTANCE: Each target builds; excluded capabilities return `not built in this profile`; no public per-feature flag matrix appears. VERIFICATION: Run the cheapest command that proves acceptance. Include regular tests for the intended payoff and adversarial tests for realistic failure, boundary, or regression cases. If no implementation test command exists yet, create/record the canonical command in AGENTS.md as part of the slice. BLOCKERS: none GOAL: Implement this vertical slice to the ACCEPTANCE above, keep the repo clean, cite relevant `req:` anchors in code/tests where applicable, and close only after verification passes.
tmk241 added this to the v1 milestone 2026-06-20 23:28:21 +00:00
tmk241 added the sliceready-for-agentgoal labels 2026-06-20 23:28:21 +00:00
Author
Owner

Implemented in commit b10cb8fdc4 (Add named local build variants).

Verification:

  • zig fmt build.zig src/profile.zig src/main.zig: pass
  • zig build test: pass
  • zig build: pass; installs mim, mim-min, mim-code, mim-full
  • zig build run-min -- profile: pass; reports active_profile=minimal, socket=disabled, tool_mutation=not_built
  • zig build run-code -- profile: pass; reports active_profile=coding, socket=local_only
  • zig build run-full -- profile: pass; reports active_profile=full-local, socket=local_only
  • zig build run-min -- mimctl context /tmp/mim.sock: exits 69 with mim: mimctl not built in this profile
  • zig build run-code -- remote: exits 69 with mim: remote not built in this profile
  • zig build run-full -- plugin: exits 69 with mim: plugin not built in this profile
  • redgate lint / health: pass

Regular tests: named build profiles are compile-time build_options values consumed by src/profile.zig; default mim remains dev-local for existing run/test commands; run-min, run-code, and run-full provide canonical smoke steps.
Adversarial tests: excluded profile capabilities fail explicitly instead of appearing available or silently no-oping. Minimal profile disables local socket/mimctl.

Boundary: named profile targets only; no public per-feature flag matrix or combinatorial feature toggles added.

Implemented in commit b10cb8fdc400 (Add named local build variants). Verification: - zig fmt build.zig src/profile.zig src/main.zig: pass - zig build test: pass - zig build: pass; installs mim, mim-min, mim-code, mim-full - zig build run-min -- profile: pass; reports active_profile=minimal, socket=disabled, tool_mutation=not_built - zig build run-code -- profile: pass; reports active_profile=coding, socket=local_only - zig build run-full -- profile: pass; reports active_profile=full-local, socket=local_only - zig build run-min -- mimctl context /tmp/mim.sock: exits 69 with `mim: mimctl not built in this profile` - zig build run-code -- remote: exits 69 with `mim: remote not built in this profile` - zig build run-full -- plugin: exits 69 with `mim: plugin not built in this profile` - redgate lint / health: pass Regular tests: named build profiles are compile-time `build_options` values consumed by `src/profile.zig`; default `mim` remains dev-local for existing run/test commands; `run-min`, `run-code`, and `run-full` provide canonical smoke steps. Adversarial tests: excluded profile capabilities fail explicitly instead of appearing available or silently no-oping. Minimal profile disables local socket/mimctl. Boundary: named profile targets only; no public per-feature flag matrix or combinatorial feature toggles added.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tmk241/mim#37