Files
ARCADIA-Studio/harness/experiments/wrapped-label-20261001/intent.md
T

39 lines
2.4 KiB
Markdown

# Bounded E/F label experiment intent (before implementation)
Base: `6ea7518e7be5b5f17d5fbc5d667da8b388058af4`; local branch
`codex/wrapped-label-experiment-01a0d717-20261001`. Parent owns compilation,
native trials, integration and publication. This worker owns only private
`diagram/label_layout_experiment.rs`, minimal `diagram.rs` wiring and necessary
Scene-literal test adjustments. No implementation files changed at this point.
Predeclared target: diagram `00000000-0038-4000-8000-000000000001`, relation
`63009b5f-539e-5914-b630-ec6b7fefb4d5`, canonical text
`Technician service conversation`. Read-once external `ARCADIA_LABEL_EXPERIMENT`
selects E or F; absence/unknown value leaves exact Baseline behavior. Never
persist this profile or alter Project, canonical text, routes, ports, cards,
other labels or authored state. No candidate-B cue.
E: `Technician service` / `conversation`, fraction .5 centered on own route.
F: `Technician` / `service` / `conversation`, fraction .55, backing left at
anchor x + 18. Font 13, line advance 16, measured maximum glyph advance + 16
horizontal padding; height 8 + 16 * line count. Shared derived layout must own
ordered lines/positions, canonical text, anchor/fraction and backing/hit bounds.
Measured geometry must pass flat-card +12, other-label +4, and foreign-stroke
+3 guards. E additionally needs one unique straight own crossing; F clears own
strokes. Authored target labels keep the profile's shape but use actual authored
fraction/offset. Ordinary save/reopen formatting contract remains unresolved.
Evidence required before acceptance: unchanged baseline Project/RoutedView;
full unchanged path and unrelated-label records; actual Iced measurement;
matching Canvas/SVG line and picking geometry; authored offset preservation;
real Scene cache reuse/invalidation. Parent runs tests and all native gates.
Initial API findings: pinned iced_graphics 0.14.0 exposes Paragraph::with_text,
its cosmic-text buffer and shaped advances through iced::advanced::graphics.
Canvas Text uses that same Paragraph implementation. Measurement is feasible
without a new dependency or character-count heuristic. However, focus and Fit
currently call core routing directly outside this ownership boundary:
`diagram_usage.rs` and `app.rs`. Work-preview scenes also consume externally
prepared RoutedView. These must be reconciled before any paint-only experiment
can claim shared-consumer parity. Report concrete scope conflicts to parent.