Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
2cefc0b
feat(reports): leftover-map cross share on grouping comparison strip …
seonghobae Aug 30, 2026
8a12062
chore(stack): converge #831 onto current #829
seonghobae Sep 5, 2026
856464d
test(red): reconstruct grouping comparison cross-share contract
seonghobae Sep 10, 2026
2c2c170
chore(ci): stage bounded #831 cross-share source repair
seonghobae Sep 10, 2026
9a958e7
chore(ci): extend #831 repair through persisted transport
seonghobae Sep 10, 2026
856cbdf
fix(ci): correct bounded #831 repair harness
seonghobae Sep 10, 2026
b7ebc9f
fix(ci): make #831 source surgery structural
seonghobae Sep 10, 2026
652bba7
fix(ci): repair #831 badge surgery and validate candidate
seonghobae Sep 10, 2026
2fe724b
fix(ci): make #831 backend surgery exact and bounded
seonghobae Sep 10, 2026
d225023
chore(repair): stage bounded #831 source surgery
seonghobae Sep 10, 2026
9e629f0
fix(ci): execute bounded #831 repair from one-shot script
seonghobae Sep 10, 2026
6bcf1d7
fix(repair): scope #831 backend surgery to comparison read model
seonghobae Sep 10, 2026
662bb9e
fix(ci): rerun #831 repair on scoped backend surgery
seonghobae Sep 10, 2026
fe30a82
fix(ci): validate #831 against exact unchanged product blobs
seonghobae Sep 10, 2026
5e2dbaf
fix(reports): transport and project comparison cross share
github-actions[bot] Sep 10, 2026
ee88c92
test(reports): reject nonfinite comparison cross share
seonghobae Sep 11, 2026
071fe46
chore(automation): stage #831 nonfinite repair
seonghobae Sep 11, 2026
e6c17e2
fix(automation): run #831 nonfinite repair
seonghobae Sep 11, 2026
3362aee
fix(automation): stabilize #831 rendered cross-share repair
seonghobae Sep 11, 2026
fab41f5
fix(automation): target #831 grouping fixture
seonghobae Sep 11, 2026
6d324e7
fix(reports): normalize nonfinite comparison cross share
seonghobae Sep 11, 2026
8d7d8fe
test(reports): keep unexplained-share fixture compatible with cross-s…
seonghobae Sep 11, 2026
9cc136c
test(report): reproduce non-finite primary cross-share leak
seonghobae Sep 11, 2026
b02e7d5
fix(report): normalize persisted cross-share at primary read boundary
seonghobae Sep 11, 2026
d581a73
test(reports): decouple PostgreSQL cross-share fixture from Keycloak
seonghobae Sep 11, 2026
9189a3e
Merge #1008: normalize non-finite primary cross-share
seonghobae Sep 11, 2026
44c7ed4
test(e2e): reuse real OIDC login for demo admin
seonghobae Sep 11, 2026
6f3b1a1
test(e2e): cover grouping comparison cross-share in browser
seonghobae Sep 11, 2026
6315b2a
ci(e2e): run authenticated grouping comparison browser gate
seonghobae Sep 11, 2026
579703f
fix(e2e): keep browser assertions out of Node DOM types
seonghobae Sep 11, 2026
ac50985
fix(ci): make browser cleanup safe before stack startup
seonghobae Sep 11, 2026
9d16d11
test(compose): require credential-free default profile
seonghobae Sep 11, 2026
1537af5
fix(compose): keep orchestrator opt-in and fail closed
seonghobae Sep 11, 2026
17db1ad
docs(compose): expose explicit local llm profile
seonghobae Sep 11, 2026
65bbb91
docs(compose): document optional llm profile
seonghobae Sep 11, 2026
f0b0e3a
test(compose): pin optional dependency graph
seonghobae Sep 11, 2026
81ad1e9
docs(e2e): align browser stack with optional llm profile
seonghobae Sep 11, 2026
00cde15
fix(ci): seed browser fixture with locked dev dependency
seonghobae Sep 11, 2026
1bcdcc5
fix(compose): pin Keycloak issuer to the public URL
seonghobae Sep 11, 2026
bddc243
docs(config): describe the pinned issuer, not host reflection
seonghobae Sep 11, 2026
b4c8ea2
ci(e2e): retain Playwright failure evidence
seonghobae Sep 11, 2026
4991912
ci(e2e): persist browser assertion output
seonghobae Sep 11, 2026
41e54f9
test(e2e): keep Pixel 7 override context-scoped
seonghobae Sep 11, 2026
f5621a6
test(e2e): keep Pixel 7 override type-safe
seonghobae Sep 11, 2026
f5b181d
ci(e2e): scope browser failure evidence to browser RED
seonghobae Sep 11, 2026
b013b8b
fix(ui): keep workspace navigation reachable on phones
seonghobae Sep 11, 2026
93e1b4f
Merge pull request #1010 from ContextualWisdomLab/fix/compose-orchest…
seonghobae Sep 11, 2026
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
10 changes: 9 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ stops startup instead of leaving a healthy-looking partial schema, and
application code must not compensate for a missing table.

Period leftover pairs (ADR 0017 / 0018 / 0048 / 0049 / 0119 / 0158 / 0162 /
0163 / 0164 / 0182 / 0185 / 0201 / 0233 / 0266 / 0267 / 0268 / 0269 / 0270 / 0271 / 0272 / 0273 / 0274 / 0275 / 0276 / 0277 / 0278 / 0279 / 0280 / 0281 / 0282 / 0283 / 0284 / 0285 / 0286 / 0287 / 0288 / 0289 / 0290 / 0291 / 0292 / 0293 / 0294 / 0295) are computed in `lineageweave/leftover_pairs.py` from the
0163 / 0164 / 0182 / 0185 / 0201 / 0233 / 0266 / 0267 / 0268 / 0269 / 0270 / 0271 / 0272 / 0273 / 0274 / 0275 / 0276 / 0277 / 0278 / 0279 / 0280 / 0281 / 0282 / 0283 / 0284 / 0285 / 0286 / 0287 / 0288 / 0289 / 0290 / 0291 / 0292 / 0293 / 0294 / 0295 / 0296) are computed in `lineageweave/leftover_pairs.py` from the
residual after a real GRM/GPCM score, never invented. Distances are
Euclidean on the two-dimensional Gabriel leftover map; missing cells stay
out of the factorization. Closest and farthest post–criterion pairs
Expand Down Expand Up @@ -434,6 +434,12 @@ compares leftover pairs can match the pair-row `U²/R²` badge; a missing or non
`s` omits that leftover-map comparison unexplained leftover share badge and does not invent
`s` from `U` and `R` or from leftover-map distance. The strip does not gain the
leftover-map graphic.
ADR 0296 captions grouping comparison leftover-pair buttons with persisted leftover-map
cross share `x` through formatLeftoverMapCrossShare so a buyer who
compares leftover pairs can match the pair-row `2R̂U/R²` badge; a missing or non-finite
`x` omits that leftover-map comparison cross share badge and does not invent
`x` from `R̂`, `U`, and `R` or from leftover-map distance. The strip does not gain the
leftover-map graphic.
When `R`, `R̂`, `U`, `x`,
`s`, and `e` are finite, `e + s + x = 1`. When `Y`, `E`, and `R` are
finite, `Y − E = R`. When `R`, `R̂`, and `U` are
Expand Down Expand Up @@ -462,6 +468,8 @@ Grouping comparison explained leftover share (ADR 0294) captions grouping compar
buttons with persisted leftover-map explained leftover share `e`.
Grouping comparison unexplained leftover share (ADR 0295) captions grouping comparison leftover-pair
buttons with persisted leftover-map unexplained leftover share `s`.
Grouping comparison leftover-map cross share (ADR 0296) captions grouping comparison leftover-pair
buttons with persisted leftover-map cross share `x`.
Item complete-case coverage
(ADR 0282) captions the leftover-map graphic with how many scored criteria
entered the map. Item complete-case coverage on the pair list (ADR 0285)
Expand Down
7 changes: 5 additions & 2 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,8 @@ ADR 0294 captions grouping comparison leftover-pair buttons with persisted lefto
explained leftover share `e` through formatLeftoverMapExplainedShare.
ADR 0295 captions grouping comparison leftover-pair buttons with persisted leftover-map
unexplained leftover share `s` through formatLeftoverMapUnexplainedShare.
ADR 0296 captions grouping comparison leftover-pair buttons with persisted leftover-map
cross share `x` through formatLeftoverMapCrossShare.
Click a post marker or a pair button
opens that post. Those ADRs are the normative mathematical, storage, and
display contracts. Leftover-map axis share
Expand All @@ -703,8 +705,9 @@ leftover-map complete-case coverage (ADR 0289), leftover-map item complete-case
coverage (ADR 0290), leftover-map incomplete post coverage (ADR 0291), leftover-map
incomplete item coverage (ADR 0292), leftover-map reconstruction `R̂`
(ADR 0293), leftover-map explained leftover share `e`
(ADR 0294), and leftover-map unexplained leftover share `s`
(ADR 0295);
(ADR 0294), leftover-map unexplained leftover share `s`
(ADR 0295), and leftover-map cross share `x`
(ADR 0296);
`POST .../rebuild` scores every grouping kind (post_admin). `make seed`
folds A-100/B-200 Event Lineage fixtures (and the Riverbend calendar
post) that already have constructed IRT cells into the same shared
Expand Down
47 changes: 47 additions & 0 deletions CHANGELOG.d/2.53.0-leftover-map-compare-cross-share.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
## 2.53.0 — Leftover-map cross share on grouping comparison strip pair rows

- Caption leftover-map cross share `x` on grouping comparison strip
leftover-pair buttons through formatLeftoverMapCrossShare (ADR 0296).
After `make seed`, closest and farthest leftover pairs sit above the
member list with the Gabriel biplot of already-named coordinates,
leftover-map axis share when finite, axis ticks that match
`ξ (x, y) ζ (x, y)` on the pair row, pair segments that match `d` on
the pair row, pair segments that match `R̂` on the pair row, pair
segments that match `R̂²/R²` on the pair row, pair segments that match
`U²/R²` on the pair row, pair segments that match `2R̂U/R²` on the pair
row, pair segments that match `U` on the pair row, pair segments that
match `R` on the pair row, pair segments that match `Y` on the pair row,
pair segments that match `E` on the pair row, pair segments that match
leftover-map rank on the pair row, a plot caption that matches
leftover-map complete-case coverage above the pair list, a plot caption
that matches leftover-map item complete-case coverage, a plot caption
that matches leftover-map incomplete post coverage, a plot caption that
matches leftover-map incomplete item coverage, a pair-list note that
matches leftover-map post complete-case coverage, a pair-list note that
matches leftover-map item complete-case coverage, a pair-list note that
matches leftover-map incomplete post coverage, a pair-list note that
matches leftover-map incomplete item coverage, a grouping comparison
note that matches leftover-map post complete-case coverage, a grouping
comparison note that matches leftover-map item complete-case coverage,
a grouping comparison note that matches leftover-map incomplete post
coverage, a grouping comparison note that matches leftover-map
incomplete item coverage, grouping comparison leftover-pair buttons
that match leftover-map reconstruction `R̂` on the pair row, grouping
comparison leftover-pair buttons that match leftover-map explained
leftover share `e` on the pair row, grouping comparison leftover-pair
buttons that match leftover-map unexplained leftover share `s` on the
pair row, and grouping comparison leftover-pair buttons that match
leftover-map cross share `x` on the pair row; click a post marker or a
pair button opens that post. A missing or non-finite `x` omits that
leftover-map comparison cross share badge and keeps leftover-map
unexplained leftover share `s` when finite, leftover-map explained
leftover share `e` when finite, leftover-map reconstruction `R̂` when
finite, leftover-map distance `d`, plus the strip coverage notes. Do
not invent `x` from `R̂`, `U`, and `R`, leftover-map distance, plotted
coordinates, leftover-map reconstruction, leftover residual,
leftover-map rank, leftover-map post coverage, leftover-map item
coverage, leftover-map incomplete post coverage, leftover-map
incomplete item coverage, or the count of unused axes. A finite
negative share is shown, never clamped. The strip does not gain the
leftover-map graphic. Never invent a leftover score. Never invent a
theta. No new columns.
46 changes: 46 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,52 @@ All notable changes to this project are documented here. Format follows

### Added

- Period leftover pairs now caption grouping comparison leftover-pair
buttons with persisted leftover-map cross share `x` through
formatLeftoverMapCrossShare (ADR 0296 / v2.53.0). After `make seed`,
closest and farthest leftover pairs sit above the member list with the
Gabriel biplot of already-named coordinates, leftover-map axis share when
finite, axis ticks that match `ξ (x, y) ζ (x, y)` on the pair row, pair
segments that match `d` on the pair row, pair segments that match `R̂` on
the pair row, pair segments that match `R̂²/R²` on the pair row, pair
segments that match `U²/R²` on the pair row, pair segments that match
`2R̂U/R²` on the pair row, pair segments that match `U` on the pair row,
pair segments that match `R` on the pair row, pair segments that match
`Y` on the pair row, pair segments that match `E` on the pair row, pair
segments that match leftover-map rank on the pair row, a plot caption
that matches leftover-map complete-case coverage above the pair list, a
plot caption that matches leftover-map item complete-case coverage, a
plot caption that matches leftover-map incomplete post coverage, a plot
caption that matches leftover-map incomplete item coverage, a pair-list
note that matches leftover-map post complete-case coverage, a pair-list
note that matches leftover-map item complete-case coverage, a pair-list
note that matches leftover-map incomplete post coverage, a pair-list
note that matches leftover-map incomplete item coverage, a grouping
comparison note that matches leftover-map post complete-case coverage,
a grouping comparison note that matches leftover-map item
complete-case coverage, a grouping comparison note that matches
leftover-map incomplete post coverage, a grouping comparison note
that matches leftover-map incomplete item coverage, grouping comparison
leftover-pair buttons that match leftover-map reconstruction `R̂` on the
pair row, grouping comparison leftover-pair buttons that match
leftover-map explained leftover share `e` on the pair row, grouping
comparison leftover-pair buttons that match leftover-map unexplained
leftover share `s` on the pair row, and grouping comparison leftover-pair
buttons that match leftover-map cross share `x` on the pair row; click a
post marker or a pair button opens that post. A missing or non-finite
`x` omits that leftover-map comparison cross share badge and keeps
leftover-map unexplained leftover share `s` when finite, leftover-map
explained leftover share `e` when finite, leftover-map reconstruction
`R̂` when finite, leftover-map distance `d`, plus the strip coverage
notes. Do not invent `x` from `R̂`, `U`, and `R`, leftover-map distance,
plotted coordinates, leftover-map reconstruction, leftover residual,
leftover-map rank, leftover-map post coverage, leftover-map item
coverage, leftover-map incomplete post coverage, leftover-map
incomplete item coverage, or the count of unused axes. A finite
negative share is shown, never clamped. The strip does not gain the
leftover-map graphic. Never invent a leftover score or a theta. No new
columns.

- Period leftover pairs now caption grouping comparison leftover-pair
buttons with persisted leftover-map unexplained leftover share `s` through
formatLeftoverMapUnexplainedShare (ADR 0295 / v2.52.0). After `make seed`,
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ cutoff. Global Ask optional `knowledge_cutoff` uses the same cover

Create/start endpoint rules (ADR 0017 / 0021), tie-vs-miss similarity
(ADR 0026), R&R catalog ids (ADR 0019 / 0027), leftover pairs
(ADR 0048–0164 / 0182 / 0185 / 0201 / 0233 / 0266 / 0267 / 0268 / 0269 / 0270 / 0271 / 0272 / 0273 / 0274 / 0275 / 0276 / 0277 / 0278 / 0279 / 0280 / 0281 / 0282 / 0283 / 0284 / 0285 / 0286 / 0287 / 0288 / 0289 / 0290 / 0291 / 0292 / 0293 / 0294 / 0295), occupational construct catalog search
(ADR 0048–0164 / 0182 / 0185 / 0201 / 0233 / 0266 / 0267 / 0268 / 0269 / 0270 / 0271 / 0272 / 0273 / 0274 / 0275 / 0276 / 0277 / 0278 / 0279 / 0280 / 0281 / 0282 / 0283 / 0284 / 0285 / 0286 / 0287 / 0288 / 0289 / 0290 / 0291 / 0292 / 0293 / 0294 / 0295 / 0296), occupational construct catalog search
(ADR 0257), the text-channel embedding swap and cosine
clamp (ADR 0190), per-edge channel-score persistence (ADR 0195),
token-backed status notices (ADR 0220),
Expand Down
Loading