Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 90 additions & 6 deletions packages/components/geometry-ledger.json
Original file line number Diff line number Diff line change
Expand Up @@ -344,15 +344,51 @@
"surfaceFamily": "right-sidebar"
}
},
"geometry/session/1aje3gt": {
"geometry/session/10cevl5": {
"status": "debt",
"baseline": {
"offset": 1.25
"offset": -1.5
},
"identity": {
"label": "Cancel",
"label": "Toggle project",
"axis": "x",
"anchor": "inline-start",
"surfaceFamily": "session"
}
},
"geometry/session/1939a5y": {
"status": "debt",
"baseline": {
"offset": 5
},
"identity": {
"label": "text “G” in text row ↔ text “Geometry Lab” in text row",
"axis": "y",
"anchor": "visual-center",
"anchor": "text-baseline",
"surfaceFamily": "session"
}
},
"geometry/session/1a0fdze": {
"status": "debt",
"baseline": {
"offset": -4
},
"identity": {
"label": "New session",
"axis": "x",
"anchor": "inline-end",
"surfaceFamily": "session"
}
},
"geometry/session/1adqfq9": {
"status": "debt",
"baseline": {
"offset": -3.5
},
"identity": {
"label": "button “Audit Sidebar semantic baselines”",
"axis": "x",
"anchor": "inline-center",
"surfaceFamily": "session"
}
},
Expand Down Expand Up @@ -464,13 +500,37 @@
"surfaceFamily": "session"
}
},
"geometry/session/i4jvzg": {
"geometry/session/bamjpu": {
"status": "debt",
"baseline": {
"offset": -4
},
"identity": {
"label": "Machine",
"axis": "y",
"anchor": "visual-center",
"surfaceFamily": "session"
}
},
"geometry/session/hx7un1": {
"status": "debt",
"baseline": {
"offset": 1.25
},
"identity": {
"label": "More actions",
"axis": "y",
"anchor": "visual-center",
"surfaceFamily": "session"
}
},
"geometry/session/kvmavf": {
"status": "debt",
"baseline": {
"offset": -1
},
"identity": {
"label": "Private to you: lody is not shared with the team.",
"label": "More actions",
"axis": "y",
"anchor": "visual-center",
"surfaceFamily": "session"
Expand All @@ -488,6 +548,18 @@
"surfaceFamily": "session"
}
},
"geometry/session/n45o1m": {
"status": "debt",
"baseline": {
"offset": -1.5
},
"identity": {
"label": "app.tsx",
"axis": "y",
"anchor": "visual-center",
"surfaceFamily": "session"
}
},
"geometry/session/nu8q04": {
"status": "debt",
"baseline": {
Expand Down Expand Up @@ -524,6 +596,18 @@
"surfaceFamily": "session"
}
},
"geometry/session/wvh8i8": {
"status": "debt",
"baseline": {
"offset": -3.5
},
"identity": {
"label": "Settings",
"axis": "x",
"anchor": "inline-start",
"surfaceFamily": "session"
}
},
"geometry/session/wy7fax": {
"status": "debt",
"baseline": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,11 @@
background: var(--candidate-soft);
}

.detail-review[data-kind='cross-family-candidate'] .detail-finding {
color: var(--text-muted);
background: var(--hover);
}

.detail-review[data-kind='insufficient'] .detail-finding {
color: var(--text-muted);
background: var(--hover);
Expand Down Expand Up @@ -585,6 +590,9 @@ <h2>明确排除</h2>
const reviewCandidates = candidates.filter((d) => d.requiresReview);
const stableCandidates = candidates.filter((d) => !d.requiresReview);
const overviews = report.details.filter((d) => d.kind === 'overview');
const crossFamilyCandidates = report.details.filter(
(d) => d.kind === 'cross-family-candidate'
);
const jitters = report.details.filter((d) => d.kind === 'jitter');
const insufficient = report.details.filter((d) => d.kind === 'insufficient');
const measurementModels = report.details.filter((d) => d.kind === 'measurement-model');
Expand Down Expand Up @@ -725,6 +733,12 @@ <h2>明确排除</h2>
['overview', '整体视图', overviews.length, null],
['jitter', '亚像素抖动', jitters.length, 'dot--candidate'],
['measurement-model', '测量模型分歧', measurementModels.length, 'dot--candidate'],
[
'cross-family-candidate',
'跨行族候选轨',
crossFamilyCandidates.length,
'dot--insufficient',
],
['insufficient', '证据不足', insufficient.length, 'dot--insufficient'],
['stable', '稳定候选轨', stableCandidates.length, 'dot--candidate'],
];
Expand Down Expand Up @@ -956,13 +970,15 @@ <h2>明确排除</h2>
? '候选轨与偏移'
: detail.kind === 'overview'
? '候选轨总览'
: detail.kind === 'jitter'
? '亚像素抖动'
: detail.kind === 'measurement-model'
? '测量模型分歧'
: detail.kind === 'insufficient'
? '证据不足'
: '失败语义线';
: detail.kind === 'cross-family-candidate'
? '跨行族候选轨'
: detail.kind === 'jitter'
? '亚像素抖动'
: detail.kind === 'measurement-model'
? '测量模型分歧'
: detail.kind === 'insufficient'
? '证据不足'
: '失败语义线';
const figures = [
['原始界面', detail.images.clean, `${detail.title} 原始局部截图`],
[annotatedLabel, detail.images.annotated, `${detail.title} ${annotatedLabel}局部截图`],
Expand Down
10 changes: 8 additions & 2 deletions packages/components/src/lib/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,14 @@ Production layout stays ordinary Flex/Grid with stable geometry data markers onl
columns are never props or wrapper DOM. Fixture and gate share one spec. `?geometry=1` adds
the overlay, alignment lines and spacing diagnostics; dev only.

- Explicit control boxes: repeated slots share an X line across rows, icon/text controls
in one row a Y instance.
- Explicit control boxes: repeated slots share an X line across rows.
- A Y rail's row is GEOMETRIC: `assignGeometricRows` puts an extent on the line whose MEDIAN
band it overlaps by half OF BOTH. To that band, never neighbour to neighbour, or half-overlaps
chain two lines of different heights into one, as chaining intermediate X coordinates would
merge indentation levels. Of BOTH, or an extent far taller covers the band whole while
sitting off its line — a 44px heading joined a 17px row that way. The DOM row is a PRIOR
setting the EVIDENCE BAR, never eligibility; as a gate it hid every cross-structural line by
construction. An atom no row accepted is measured on Y under its own row id.
- Cross-font rows compare ink centres — a cap-height band from a fixed reference glyph,
transformed SVG path bounds, a painted CSS shape's box; baselines compare text only
([tests/e2e/support](../../tests/e2e/support/AGENTS.md)). The overlay and the capture take
Expand Down
Loading