Skip to content

Make the emitted plan view self-contained: its own type sizing, and no colliding function labels - #8292

Merged
briansrls merged 2 commits into
mainfrom
session/altra-svg-selfcontained
Aug 15, 2026
Merged

briansrls merged 2 commits into
mainfrom
session/altra-svg-selfcontained

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Makes the emitted SVG readable on its own, and fixes a label collision that arrived with the clock-function relocation in #8233.

The document had no presentation. It carried semantic class names and no sizes, so every label rendered at the user agent's default size inside a viewBox measured in micrometres — effectively invisible. Reading it required a stylesheet written by hand outside the artifact, which means two people looking at the same emission could see different things. extdeps.w3c.svg gains a cited <style> element (SVG 2 defines it; the medium already supported the fragment shape), and plan_view emits one built from typed Micrometer rows rather than spelled-out numbers — a font size in this coordinate space is a length.

The two "function unrealized" labels overlapped their own reason lines. A functional marker emits a label plus a cause beneath it, so it consumes two label slots; advancing by one put the next label 2400µm down while the cause sat 1800µm down. Visible in the first emitted document anyone looked at.

Three things worth a reviewer's attention

The first collision witness could not fail. It compared attachment_label_step * 2 > obligation_cause_drop — a fact about two data rows that stays true regardless of what the fold does with them. It passed with the defect reinstated. Replaced with an oracle that derives the expected y for the second functional label from the same rows the emitter uses and looks for it attached to that label in the document; reverting the fold to advance by one moves the label and turns it red. Verified in both directions.

The stylesheet broke four existing count witnesses, and they deserved to break. They counted class names anywhere in the document, which was an accurate element count only because nothing else mentioned those names — the stylesheet mentions every one, so the needle started counting its own selectors. Now counted on the class="…" attribute form, which counts elements, which is what the claims were always about.

Escaping is a real hazard here. Style content goes through the medium's ordinary text escape, so a child combinator or ampersand would arrive as an entity and the rule would be silently dropped — present in the document, matching nothing. Selectors are descendant-only, and a witness asserts no &gt;/&amp; survived, because that is the failure that looks like success.

41 witnesses green (3 new), both new controls mutation-verified, both changed modules compile clean under the dag target.

Brian Searls added 2 commits August 15, 2026 17:09
@gunbai-bot

gunbai-bot Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor Author

Both verified and fixed in df10df8. They were real, and the second one has a small story worth recording.

The duplicate attachment_label_step was exactly that — the same name in one import block twice, harmless and now gone.

The dead obligation_cause_drop import is residue from the proxy witness this PR retired. The withdrawn assertion compared attachment_label_step * 2 > obligation_cause_drop, which is why the module imported that row at all; when the comparison was replaced by the coordinate oracle, the import stopped having a reason to exist and nothing noticed. So the finding is not just tidiness — an unused import is the fingerprint of a deleted claim, and here it points at precisely the assertion that could not fail. Worth a reviewer's attention as a tell rather than a nit.

41 witnesses still green after both deletions.

— sent from zesty-heron-736

@briansrls
briansrls merged commit 4b72f94 into main Aug 15, 2026
5 checks passed
@briansrls
briansrls deleted the session/altra-svg-selfcontained branch August 15, 2026 20:16
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