Skip to content

Support nested occurrence paths in Edit in Context #9

Description

@protosphinx

Why this matters

Edit in Context currently hard-rejects every occurrence path whose length is not one. That prevents editing parts inside subassemblies.

Scope

  • Resolve and validate a complete root-assembly to nested-part occurrence chain.
  • Enter context from a selected nested leaf and persist its full path.
  • Classify only that exact full path as active; all other leaves remain ghosted and non-editable.
  • Preserve source body identity while keeping runtime occurrence IDs out of saved part data.
  • Exit back to the owning root assembly.
  • Associative cross-part geometry references remain a separate task.

Relevant files

  • src/static/studio-assembly-edit-context.js
  • src/static/studio-v5-runtime-document.js
  • src/static/studio-v5-assembly.js
  • src/static/studio.js
  • scripts/studio-assembly-edit-context-smoke.ts
  • scripts/studio-assembly-runtime-smoke.ts
  • New nested fixture under tests/assembly-runtime/
  • docs/help/getting-started.md

Acceptance evidence

  • A two-level subassembly fixture enters the intended nested part by full occurrence path.
  • The active body keeps its exact composed solved transform.
  • Shared-definition edits update every linked occurrence.
  • Surrounding bodies remain visible but cannot be selected as editable topology.
  • Save and reopen preserve the path, and exit restores the root assembly.
  • Missing, cyclic, detached, or retargeted path segments fail closed.
  • Exact owned body and reference counts are asserted, not inferred from scene meshes or DOM rows.

Test commands

npm run build
npm run smoke:assembly-edit-context
npm run smoke:assembly-runtime
npm run smoke:assembly-constraints
npm run ci:gate

Contribution size

L: document-path resolution, exact assembly projection, source-identity mapping, and visible selection behavior.

Maintainer response expectation

Post the requested design note and wait for maintainer scope confirmation before implementation. Staged pull requests are encouraged where the issue says so.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: assemblyAssembly documents, occurrences, mates, and edit contextenhancementNew feature or requestexpertRequires deep domain or architecture experience

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions