Skip to content

Fix Hide/Delete on variable-less source pipes - #13408

Open
JordanNoone wants to merge 4 commits into
mainfrom
codex/fix-object-transform-source-pipes
Open

Fix Hide/Delete on variable-less source pipes#13408
JordanNoone wants to merge 4 commits into
mainfrom
codex/fix-object-transform-source-pipes

Conversation

@JordanNoone

@JordanNoone JordanNoone commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Fixes #13407.
Fixes #13418.

Summary

  • append Hide/Delete to a selected variable-less source pipe instead of creating detached input-less calls
  • preserve every selected body when Hide/Delete is applied to multiple variable-less source pipes
  • add integration regressions for both object transforms
  • re-execute the modified AST in the regressions to catch invalid generated KCL

Plain-English test intent

These tests model the user flow where one or more bodies exist only as bare KCL pipelines, the user selects those bodies, and then runs Hide or Delete from the modeling UI. The behavior under test is not the geometry operation itself; it is whether the point-and-click codemod keeps the selected body or bodies as the input. Passing means the command is attached to, or references, the objects the user actually selected instead of being emitted as a detached hide() / delete() call or silently dropping one selected body.

Validation

  • npm run test:integration -- src/lang/modifyAst/transformsVariablelessPipe.spec.ts
  • npm run test:integration -- src/lang/modifyAst/transformsVariablelessPipe.spec.ts src/lang/modifyAst/objectTransformMultiVariableless.audit.spec.ts
  • npx biome check src/lang/modifyAst/transforms.ts src/lang/modifyAst/transformsVariablelessPipe.spec.ts
  • git diff --check

The committed integration test covers both hide and delete, asserts the single-selection operation is appended to the source pipe, asserts multi-selection materializes both source pipes as solid001 / solid002, and confirms engineless execution reports no issues.

The uncommitted audit repro for #13418 failed 2/2 before the latest fix and passes 2/2 after it.

@JordanNoone
JordanNoone requested a review from a team as a code owner August 28, 2026 19:56
@vercel

vercel Bot commented Aug 28, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
modeling-app Ready Ready Preview Sep 1, 2026 3:22pm UTC

Request Review

@JordanNoone

Copy link
Copy Markdown
Contributor Author

Plain-English validation intent:

This check is meant to prove that Hide and Delete commands still work when the selected solid came from unassigned pipe-style KCL. The user-facing behavior being protected is: selecting a visible body and choosing Hide/Delete should attach the new operation to that exact selected source, even if the original modeling pipeline did not have a variable name.

Latest local verification on PR head c48d9d2:

  • npm run test:integration -- src/lang/modifyAst/transformsVariablelessPipe.spec.ts passed.
  • The focused regression covers both single selected source-pipe bodies and multi-selected source-pipe bodies for Hide/Delete.
  • Current PR checks show no failing or pending checks at the time of this comment.

I am treating recovered broad CI/app-startup flakes from earlier runs as non-codemod noise because the focused codemod regression passes and the current check set is clean.

@JordanNoone

Copy link
Copy Markdown
Contributor Author

Manual GUI-fuzz PR-preview validation update.

Plain-English validation intent:
This preview check verifies the user flow where two bodies were created from separate variable-less pipe-style KCL statements, both bodies were selected from the Feature Tree, and Delete was applied to both at once. The regression being guarded against is the codemod dropping one selected body or emitting an invalid pipe placeholder instead of preserving the concrete selected bodies. Passing means the deployed PR head can materialize both selected pipe outputs into stable variables and apply Delete to the exact two selections.

Preview under test:
https://modeling-app-git-codex-fix-object-transform-source-pipes.vercel.dev.zoo.dev

Scenario exercised:

  • Spec: e2e/playwright/gui-fuzz-variableless-pipe-codemods.spec.ts
  • Variant: GUI_FUZZ_PIPE_CODEMOD_CASE=object-delete-multi
  • Result: passed on the preview deployment

Validation evidence:

  • Generated KCL materialized both selected source pipes as solid001 and solid002.
  • Final generated operation: delete([solid001, solid002]).
  • Final visual state showed the Delete step in the Feature Tree and no visible remaining body geometry.
  • Editor had no lint error markers after submit.

Runtime notes:
The run also logged recovered connection/runtime diagnostics already seen in this GUI-fuzz campaign (pathToNode warnings, stale BRep measurement-style errors, and stopAt stack logs). The scenario completed and assertions passed, so I’m classifying those as separate runtime diagnostics, not a failure of this codemod fix.

Local artifact directory:
/Users/jordan/.codex/worktrees/6489/modeling-app/test-results/gui-fuzz/20260829T004002Z

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Hide/Delete codemods drop one body for multi-selected variable-less source pipes Hide/Delete detach from selected variable-less source pipes

2 participants