In progress
This document is the focused follow-on plan for the remaining dependency pinning and audit gaps after the completed resolve-only dependency cutover.
Partial implementation is already landed in code: Pantograph now exposes the
audit_dependency_pin_compliance command surface and several inference-node UI
surfaces already render the known pinning remediation codes. The remaining work
is to finish full DTO, resolver, Puma-Lib UI, documentation, and regression
coverage alignment for pin-specific payloads.
Update Pantograph to consume the newly implemented Pumas dependency pinning model while remaining tolerant to variable metadata shape and additive API fields.
This plan is aligned to:
/media/jeremy/OrangeCream/Linux Software/Coding-Standards/COMMIT-STANDARDS.md/media/jeremy/OrangeCream/Linux Software/Coding-Standards/INTEROP-STANDARDS.md/media/jeremy/OrangeCream/Linux Software/Coding-Standards/TESTING-STANDARDS.md/media/jeremy/OrangeCream/Linux Software/Coding-Standards/TOOLING-STANDARDS.md
Key enforcement:
- Conventional commits for every task.
- Cross-language contract updates in the same commit when wire DTOs change.
- Static analysis and affected tests before every commit.
- Small, atomic commits (one logical change per commit).
- Additive dependency fields now exist:
- top-level:
missing_pins - per-binding:
pin_summary,required_pins,missing_pins
- top-level:
- Deterministic pinning codes now exist:
unpinned_dependencymodality_resolution_unknown
- New audit API exists:
audit_dependency_pin_compliance
Files:
crates/node-engine/src/model_dependencies.rssrc-tauri/src/workflow/model_dependencies.rs
Changes:
- Add additive fields to Pantograph DTOs:
- top-level
missing_pins - per-binding
pin_summary,required_pins,missing_pins
- top-level
- Add per-binding
codefor status/install rows. - Keep serde defaults so unknown fields remain non-breaking.
Validation before commit:
cargo check --manifest-path src-tauri/Cargo.toml -p pantograph
Commit after completion:
feat(deps): add pin-aware dependency dto fields- Include footer:
Agent: codex
Files:
src-tauri/src/workflow/model_dependencies.rs
Changes:
- Preserve pin fields from
pumas_library::model_library::ModelDependencyBindingPlan. - Preserve top-level
missing_pinsfrom plan/check/install. - Preserve per-binding error code for UI remediation.
Validation before commit:
cargo test --manifest-path src-tauri/Cargo.toml workflow::model_dependencies::tests -- --nocapturecargo check --manifest-path src-tauri/Cargo.toml -p pantograph
Commit after completion:
feat(workflow): map pumas dependency pin payload fields- Include footer:
Agent: codex
Files:
src/components/nodes/workflow/PumaLibNode.sveltesrc/components/nodes/workflow/PyTorchInferenceNode.sveltesrc/components/nodes/workflow/AudioGenerationNode.svelte
Changes:
- Replace closed dependency-state assumptions with tolerant string handling.
- Render new pinning codes (
unpinned_dependency,modality_resolution_unknown) explicitly. - Add safe fallback rendering for unknown state/code values.
- Keep dynamic arrays unbounded (
required_pins,missing_pins, inference settings).
Validation before commit:
npm run typechecknpm run lint:full
Commit after completion:
feat(ui): render dynamic pinning states and remediation codes- Include footer:
Agent: codex
Files:
src/components/nodes/workflow/PumaLibNode.svelte
Changes:
- Show top-level
missing_pins. - Show per-binding:
pin_summaryrequired_pinswith reasonsmissing_pins
- Keep rendering resilient when any field is absent.
Validation before commit:
npm run typechecknpm run lint:full
Commit after completion:
feat(ui): surface dependency pin summaries and required pin reasons- Include footer:
Agent: codex
Files:
src-tauri/src/workflow/model_dependency_commands.rs(or adjacent command module)src-tauri/src/workflow/commands.rs- Optional: new UI wiring file if audit is exposed in the interface
Changes:
- Add Tauri command wrapper for
audit_dependency_pin_compliance. - Return raw structured report for downstream rendering/logging.
Validation before commit:
cargo check --manifest-path src-tauri/Cargo.toml -p pantograph- Command-level tests for argument and response shape.
Commit after completion:
feat(workflow): add dependency pin compliance audit command- Include footer:
Agent: codex
Files:
docs/pumas-v2-contract-freeze.mddocs/pumas-v2-verification-log.md(if updated as part of rollout evidence)
Changes:
- Replace frozen-code assumptions with additive-field/unknown-key tolerant consumer policy.
- Document new pin fields and deterministic pin error codes.
- Document that Pantograph interprets known fields and safely ignores extra upstream fields.
Validation before commit:
- Markdown lint/preview sanity check (project-standard doc checks if available).
Commit after completion:
docs(deps): align pantograph consumer contract with pumas pinning- Include footer:
Agent: codex
Files:
src-tauri/src/workflow/model_dependencies.rstest module- Relevant frontend test locations (if present)
Changes:
- Tests for mapping and preserving pin fields.
- Tests for known pinning codes and fallback behavior on unknown code/state.
- Tests for variable-length arrays in dependency and metadata payloads.
Validation before commit:
cargo test --manifest-path src-tauri/Cargo.toml workflow::model_dependencies::tests -- --nocapturenpm run test(or closest available affected test command)cargo check --manifest-path src-tauri/Cargo.toml -p pantograph
Commit after completion:
test(deps): add pinning and unknown-field tolerance coverage- Include footer:
Agent: codex
Changes:
- Run full verification stack for integration confidence.
- Confirm runtime probe behavior for pin codes/messages.
Validation before commit:
npm run checkcargo check --manifest-path src-tauri/Cargo.toml -p pantograph- Optional runtime probe:
cargo run -p pantograph --bin pumas_dependency_runtime_probe -- --json
Commit after completion:
chore(deps): finalize pumas pinning consumer integration- Include footer:
Agent: codex
git statusgit diff --cached- Run lint/typecheck for touched areas.
- Run affected tests.
- Use conventional commit format:
<type>(<scope>): <description>
- Include footer on agent-generated commits:
Agent: codex
- Pantograph preserves and exposes Pumas pin fields without breaking on unknown additive fields.
- Pantograph renders actionable remediation for
unpinned_dependencyandmodality_resolution_unknown. - Pantograph supports variable-length metadata and dependency arrays without fixed-size assumptions.
- Pantograph includes audit command support for dependency pin compliance reporting.
- All tasks land as atomic, standards-compliant commits.