From da752ec247d59f3e05b14fa7f1ef227c19ee0a4c Mon Sep 17 00:00:00 2001 From: Niclas Overby Date: Wed, 23 Sep 2026 23:01:15 +0200 Subject: [PATCH] docs(money-manager-ex): the dictionary storm is gone, and the dialog is three clicks away Re-taking a measurement whose premise changed. -[__NSCFDictionary saveGraphicsState] appears 213655 times across the capture tree, and every one is in two captures dated 2026-09-22: mx-rate3 156719 and mx-seg 56936. That is currentContext handing back the thread dictionary instead of the context, the same family as the over release cocotron 0109 fixed. Driving the New Transaction dialog today: ZERO. Also zero unrecognised selectors of any kind on that whole path, and no guest fault. THE CAVEAT THAT MATTERS, because today's roster drives give the same zero for the wrong reason. sweep-mx, input-mx and menuact-mx all stop at the startup dialog and never open a database, so their zero proves nothing at all. This one comes from a drive that reaches the dialog the 2026-09-22 stack names. THE PATH IS THREE CLICKS and the coordinates were measured, not guessed. Open Last Opened Database at (627, 298), from scanning the capture for the seven button faces, all at x 547..707 with rows starting 288, 320, 352, 384, 416, 448, 480. Then an MMEX Instance Check alert appears because an earlier run left the database marked open, and it renders correctly: warning icon, bold title, four paragraphs, Yes and No with No as the blue default. Yes is at (602, 488), taking the OUTER bounds of the two face colour runs its own label splits. Then the toolbar New Transaction button at (191, 69). Fifty nine databases are already in the prefix, so nothing new is created. WORTH KNOWING FOR THE NEXT PERSON: CIDER_TRACE_CONTROL is alive here, 22 lines, and prints no mouseDown for the startup buttons. wx draws those itself so they are not NSControls and that trace cannot see them. It does see native alerts and sheets. A NEW DEFECT, recorded and not chased. The Date row reads 9/23/2026 with the weekday beside it as Wednesda. Zooming the capture shows eight complete glyphs then blank space: the y is not half drawn, it is absent, so the run stops at a glyph boundary rather than being cut by a clip rectangle. The same label reads Tuesday correctly in the earlier work above, and Tuesday is seven characters where Wednesday is nine, so a label sized for a shorter string is the suspect and the measurement that sizes it is what to check. The Tags row is unchanged: 3570 pixels of pure black against white for the Category field one row up. Its chain is worked out at length in this doc and its next measurement named there. Documentation only. Co-Authored-By: Claude Opus 5 (1M context) --- docs/money-manager-ex.md | 61 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/docs/money-manager-ex.md b/docs/money-manager-ex.md index 57e73e908..2df3d00ac 100644 --- a/docs/money-manager-ex.md +++ b/docs/money-manager-ex.md @@ -734,4 +734,63 @@ What is solid: Scintilla abandons after `RefreshPixMaps`; what it compares and w from; that the Tags scrollers are never written natively. What is NOT solid is the step from that last fact to "nothing is stored". The next measurement has to read `m_range` at `0x2e8` of one of those two `wxScrollBar` objects out of the live process, which the crash reading technique already -does for `/proc//mem`, or instrument the peer rather than `NSScroller`. \ No newline at end of file +does for `/proc//mem`, or instrument the peer rather than `NSScroller`. +## Re-measured 2026-09-23: the dictionary storm is gone, and the dialog is reached in three clicks + +### The 213655 unrecognised selectors are not there any more + +Across every capture in the tree, `-[__NSCFDictionary saveGraphicsState]` appears 213655 times, and +all of them are in two captures dated 2026-09-22: `mx-rate3` 156719 and `mx-seg` 56936. That is +`+[NSGraphicsContext currentContext]` handing back the thread dictionary instead of the context, +the same family as the over-release that cocotron 0109 fixed. + +Driving the New Transaction dialog today: **0**. Also 0 unrecognised selectors of any kind on that +whole path, and no guest fault. + +A caveat that matters, because today's roster drives would have given the same zero for the wrong +reason: `sweep-mx`, `input-mx` and `menuact-mx` all stop at the startup dialog and never open a +database at all, so their zero proves nothing. This zero comes from a drive that reaches the dialog +the 2026-09-22 stack names, which is where those calls came from. + +### The path, three clicks, and the coordinates measured rather than guessed + +There are 59 databases left in the prefix from earlier sessions, so Open Last Opened Database is +enough and nothing new is created. + +1. **Open Last Opened Database** at (627, 298). The seven startup buttons were measured out of the + capture by scanning for their face colour: all at x 547..707, rows starting y 288, 320, 352, + 384, 416, 448, 480. +2. **An MMEX Instance Check alert appears**, because a previous run left the database marked open. + It renders correctly: warning icon, bold title, four paragraphs with proper apostrophes, Yes and + No with No as the blue default carrying its focus ring. Yes is at (602, 488), taking the OUTER + bounds of the two face-colour runs the label splits, which is the trap recorded in + `chrome-fidelity-by-measurement`. +3. **The toolbar New Transaction button** at (191, 69). + +Note for anyone repeating this: `CIDER_TRACE_CONTROL` is alive here, 22 lines, but prints no +`mouseDown` for the startup buttons. wx draws those itself, so they are not `NSControl`s and that +trace cannot see them. It DOES see native alerts and sheets. + +### The main window on a populated database + +Title `cider52.mmb - Money Manager Ex (1.9.3 64-bit) macOS Sonoma 14.4.1`, the full menu bar, a +toolbar of fifteen green icons in two groups, and a Navigator tree that renders every row with its +icon: Dashboard selected, All Transactions, Scheduled Transactions, Favorites, Bank Accounts, +Assets, Budget Planner, Transaction Report, Reports, General Report Manager, Help. The content +area beside it is empty. + +### The weekday label loses its last letter, and it is NOT clipped + +The Date row reads `9/23/2026` with the weekday beside it as **Wednesda**. Zooming the capture +shows eight complete glyphs and then blank space: the `y` is not half drawn, it is absent, so the +run stops at a glyph boundary rather than being cut by a clip rectangle. + +This is new. The doc above records the same label reading `Tuesday` correctly after cocotron 0117, +and Tuesday is seven characters where Wednesday is nine, so a label sized for the shorter string is +the obvious suspect and the measurement that sizes it is the thing to check. Not chased yet. + +### Still open, unchanged + +The Tags row is still 3570 pixels of pure `(0,0,0)` against `(255,255,255)` for the Category field +one row up, with only its top border drawn. The chain for it is worked out at length above and its +next measurement is named there. -- 2.51.2