Skip to content

pinhole 0.3.7: the operator's home marks its logical-lens namespace box too (#234, pinhole#119) - #333

Merged
lex00 merged 1 commit into
mainfrom
feat/operator-home-box-mark
Aug 31, 2026
Merged

pinhole 0.3.7: the operator's home marks its logical-lens namespace box too (#234, pinhole#119)#333
lex00 merged 1 commit into
mainfrom
feat/operator-home-box-mark

Conversation

@lex00

@lex00 lex00 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Bumps @intentius/pinhole to ^0.3.7 (pinhole#95's node mark vocabulary, extended to GroupBox.mark by pinhole#119).
  • behold#324 marked the OperatorStack's namespace in the entity graph (markOperatorHome, src/server.ts's four call sites) but the logical lens's namespace box had no mark channel to use — recorded in pinhole#119 and src/operator.ts's scope note. That gap is now closed.
  • operatorHomeBoxMarks (src/operator.ts) reuses operatorHomes — the same label-reading detector markOperatorHome already calls, not a second one — against the projection's own namespaceBoxes keys (behold#328/fix: every logical route hands the lens the same anchors, and namespace boxes stop being addressed by their titles (#328, pinhole#119) #331's structural addressing, now exposed on projectTopology's return). renderArchitecture gained a groupMarks option that splices the result onto the matching GroupBox by its structural id, never by title.
  • Two of the four logical branches in /api/graph and /api/overlay never called markOperatorHome at all (they return before the entity branch that does), so the box mark is derived straight from operatorHomes on the pre-projection IR rather than depending on that call having run first.
  • Picked a fresh two-arc "converge loop" GlyphSpec rather than a GENERIC_GLYPHS key — nothing in that fixed vocabulary names a converge loop, and the point is one glyph identity so the operator's home reads the same as web/app.js's "⟳" mark on the entity graph.

Test plan

🤖 Generated with Claude Code

https://claude.ai/code/session_01Rfs1mLVWmwginHnDTg75sG

…he logical lens too (#234, pinhole#119)

behold#324 marked the OperatorStack's namespace in the ENTITY graph
(markOperatorHome) but could not mark it in the logical lens's box — GroupBox
had no mark field until pinhole#119 shipped one in 0.3.7. Bump the pin to
^0.3.7 and wire it up: operatorHomeBoxMarks (src/operator.ts) runs the same
operatorHomes detector against the projection's own namespaceBoxes keys
(behold#328/#331, now exposed on projectTopology's return), and
renderArchitecture's new groupMarks option splices the result onto the
matching GroupBox by its structural id — never by title, same discipline
#331 already holds for placeHelmReleases.

Two of the four /api/graph and /api/overlay logical branches never called
markOperatorHome at all (they return before the entity branch that does), so
their box mark is derived straight from operatorHomes on the pre-projection
IR rather than depending on that call's having run.

Picked a fresh two-arc "converge loop" GlyphSpec rather than a GENERIC_GLYPHS
key — nothing in that fixed vocabulary names a converge loop, and the point
is one glyph identity so the operator's home reads the same as web/app.js's
"⟳" on the entity graph.

Verified #331's decorated-title test (logical-helm.test.ts) doesn't interact:
it exercises ByContainer/title strings, mark is a separate GroupBox field
addressed by id.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rfs1mLVWmwginHnDTg75sG
@lex00
lex00 merged commit 5fc6c88 into main Aug 31, 2026
1 check passed
lex00 added a commit that referenced this pull request Aug 31, 2026
…s home is marked in both views, the e2es assert the new edges (#335)

Since 0.13.0: #331 (the single-project logical routes gain
addClusterAnchorEdges — history showed the omission was never a
decision — and namespace boxes are addressed by structural keys, not
titles), #333 (pinhole 0.3.7's GroupBox mark channel consumed — the
converge loop's home namespace carries the same glyph in the logical
lens as on the entity graph), #332 (both GitOps e2es run green live at
this line and now assert the reconciles/delivers member edge, its
entry-node landing, and the detail-tier note).


Claude-Session: https://claude.ai/code/session_01Rfs1mLVWmwginHnDTg75sG

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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.

1 participant