[PR #980] [MERGED] fix(evaluation): canonicalize Unicode argument keys #2550

Closed
opened 2026-10-17 21:07:28 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/980
Author: @morluto
Created: 10/7/2026
Status: ✅ Merged
Merged: 10/7/2026
Merged by: @morluto

Base: main ← Head: codex/evaluation-unicode-key-order


📝 Commits (1)

  • 3660b61 fix(evaluation): canonicalize Unicode argument keys

📊 Changes

4 files changed (+58 additions, -7 deletions)

View changed files

➕ src/domain/unicodeCodePointOrder.test.ts (+22 -0)
📝 src/domain/unicodeCodePointOrder.ts (+10 -6)
📝 src/evaluation/CodexAgentEval.ts (+3 -1)
📝 tests/evaluation/model-evals/codexAgentEval.test.ts (+23 -0)

📄 Description

Codex evaluation now canonicalizes argument-object keys with REA's shared Unicode code-point comparator. Distinct keys that compare equal under the host locale could previously retain insertion order, causing identical calls with reversed key order to be counted separately. The shared comparator now streams over code points without allocating temporary arrays while preserving scalar-value ordering.

Validation:

  • npm run build:cached
  • Focused Codex evaluation, Unicode comparator, reference graph, and reference reader tests (29 passed)
  • npm run check:fast
  • oxfmt --check on the four changed files
  • 50,000 deterministic string-pair comparisons matched the prior comparator's ordering sign
  • A seven-run sort-only profile on 10,000 source-like paths measured 12.02 ms median before and 2.03 ms after, with identical sorted JSON and SHA-256 digest. This measures comparator/sort CPU and allocations; it does not establish a full reference-import speedup.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/980 **Author:** [@morluto](https://github.com/morluto) **Created:** 10/7/2026 **Status:** ✅ Merged **Merged:** 10/7/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `codex/evaluation-unicode-key-order` --- ### 📝 Commits (1) - [`3660b61`](https://github.com/morluto/rea/commit/3660b6128030b0049acae9e034429d152252ea8a) fix(evaluation): canonicalize Unicode argument keys ### 📊 Changes **4 files changed** (+58 additions, -7 deletions) <details> <summary>View changed files</summary> ➕ `src/domain/unicodeCodePointOrder.test.ts` (+22 -0) 📝 `src/domain/unicodeCodePointOrder.ts` (+10 -6) 📝 `src/evaluation/CodexAgentEval.ts` (+3 -1) 📝 `tests/evaluation/model-evals/codexAgentEval.test.ts` (+23 -0) </details> ### 📄 Description Codex evaluation now canonicalizes argument-object keys with REA's shared Unicode code-point comparator. Distinct keys that compare equal under the host locale could previously retain insertion order, causing identical calls with reversed key order to be counted separately. The shared comparator now streams over code points without allocating temporary arrays while preserving scalar-value ordering. Validation: - `npm run build:cached` - Focused Codex evaluation, Unicode comparator, reference graph, and reference reader tests (29 passed) - `npm run check:fast` - `oxfmt --check` on the four changed files - 50,000 deterministic string-pair comparisons matched the prior comparator's ordering sign - A seven-run sort-only profile on 10,000 source-like paths measured 12.02 ms median before and 2.03 ms after, with identical sorted JSON and SHA-256 digest. This measures comparator/sort CPU and allocations; it does not establish a full reference-import speedup. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-17 21:07:28 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#2550
No description provided.