Repository navigation
feat(workflow): add constraint-driven compiler - #146
Merged
tt-a1i merged 5 commits intoAug 30, 2026
Merged
Conversation
1 of 3 tasks
…kflow-compiler # Conflicts: # archify.zip # docs/assets/archify-live-proof.gif # docs/assets/archify-live-proof.json # docs/gallery.html # docs/gallery/manifest.json
…kflow-compiler # Conflicts: # CHANGELOG.md # archify.zip # archify/renderers/shared/generated-validators.mjs # archify/renderers/workflow/render-workflow.mjs # archify/schemas/workflow.schema.json
tt-a1i
approved these changes
Aug 30, 2026
tt-a1i
left a comment
Owner
There was a problem hiding this comment.
Reviewed exact head 40dda49 against #126. The v1 byte-compatibility boundary, fail-closed v1-to-v2 migration, deterministic constraint compiler, semantic diagnostics, and committed proof receipt are all covered by the current green checks; the focused local compiler/migration/semantic suite also passed 133/133. I found no blocking correctness issue. The material tradeoff is the long-term maintenance surface of workflow schema v2, and the owner has explicitly accepted that product direction.
This was referenced Aug 30, 2026
Win-Hao
added a commit
to Win-Hao/archify
that referenced
this pull request
Aug 30, 2026
validateWorkflow, validateDataflow, and validateLifecycle only checked that node coordinates were finite; a non-positive width/height slipped past the layout layer and emitted <rect height="-10"> when the schema layer was not in front of the renderer. Add the same size guard validateArchitecture already carries. After tt-a1i#146 validateWorkflow lives in workflow-compiler.mjs; the guard goes there. The three measure functions also defaulted with `||`, so an authored 0 was silently replaced by the renderer default and never reached the new guard. Fall back with `??` instead, matching validateArchitecture, where an authored `size: [0, 60]` already reaches its guard. Cover the guards behaviorally. Every supported entry point runs JSON Schema validation first, so these layout checks are defense in depth and cannot be reached from outside — asserting the schema diagnostic proves nothing about them. test/helpers/schema-free-render.mjs renders from a throwaway copy of the renderers whose generated ajv validators are replaced with accept-everything stand-ins; the schema layer is the only thing removed, so what the renderer reports afterwards is its own check. Ship code carries no bypass. Mutation probe on this tree: deleting the workflow, dataflow or lifecycle guard fails 4 cases each; reverting a `??` back to `||` fails the matching zero case; deleting the pre-existing architecture guard fails its case. The schema-level cases stay in golden.mjs, where they belong, and the mislabeled layout cases are gone from layout-rules.test.mjs. Closes tt-a1i#171 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BLT8sSBFcKSvnEggvWzj6u
maheshsingh20
added a commit
to maheshsingh20/archify
that referenced
this pull request
Aug 31, 2026
Addresses tt-a1i re-review after rebase onto upstream/main (feat tt-a1i#146): - render-workflow.mjs is now a thin compiler shim; all rendering lives in workflow-compiler.mjs. Ported renderLaneOwnershipBars() and renderPhaseBand() into workflow-compiler.mjs using the compiler's laneTop()/laneHeight() helpers so variable-height lanes (schema v2) are handled correctly. - Lane bars use laneHeight(index) rather than the fixed layout.laneH, matching the compiler's own lane rendering. - render-workflow.mjs replaced with the upstream compiler-shim version; no more stale old-renderer body in the file. - Golden examples re-rendered via the compiler path. - Lane-only fixture golden refreshed. - test/golden.mjs synced to upstream baseline + lane-only block retained.
5 tasks
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.
Summary
Verification
npm test(855 passed, 18 skipped, 0 failed)The generated Maka artifact is based on source revision
f8be426ba81bc2f62e9cf0e08bac85f576cc9261.Fixes #126