From 6c35f66231b1deb2ea32c4e918147d1094764b0e Mon Sep 17 00:00:00 2001 From: roboomp Date: Sun, 26 Jul 2026 14:44:17 +0000 Subject: [PATCH] fix(snapcompact): reported all foveated frame widths - Collected distinct rendered frame widths for resume summaries. - Covered mixed HQ/LQ archives with the existing foveation regression. - Documented the fix in the snapcompact changelog. Fixes #6712 --- packages/snapcompact/CHANGELOG.md | 4 ++++ packages/snapcompact/src/snapcompact.ts | 7 ++++++- packages/snapcompact/test/snapcompact.test.ts | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/snapcompact/CHANGELOG.md b/packages/snapcompact/CHANGELOG.md index 17f59e216..cf8b0c651 100644 --- a/packages/snapcompact/CHANGELOG.md +++ b/packages/snapcompact/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Fixed + +- Fixed snapcompact resume guides reporting only the HQ grid width for mixed-width foveated archives ([#6712](https://github.com/can1357/oh-my-pi/issues/6712)). + ## [17.1.0] - 2026-07-24 ### Added diff --git a/packages/snapcompact/src/snapcompact.ts b/packages/snapcompact/src/snapcompact.ts index 98bef8699..348e1a14f 100644 --- a/packages/snapcompact/src/snapcompact.ts +++ b/packages/snapcompact/src/snapcompact.ts @@ -1963,6 +1963,11 @@ export async function compact( const frames = await Promise.all(newFrames); const totalChars = frames.reduce((sum, frame) => sum + frame.chars, 0) + textChars; + const frameCols: number[] = []; + for (const frame of frames) { + if (!frameCols.includes(frame.cols)) frameCols.push(frame.cols); + } + const summaryCols = frameCols.length > 0 ? frameCols.join(" or ") : geo.cols; const { readFiles, modifiedFiles } = computeFileLists(fileOps); const files = formatFileList(readFiles, modifiedFiles, fileOps.read); @@ -1975,7 +1980,7 @@ export async function compact( frameCount: frames.length, multipleFrames: frames.length > 1, docColumns: high.columns === 2, - cols: geo.cols, + cols: summaryCols, rows: geo.rows, sentenceInk: high.variant === "sent", stopwordDimmed: high.stopwordDim === true, diff --git a/packages/snapcompact/test/snapcompact.test.ts b/packages/snapcompact/test/snapcompact.test.ts index 3ab1c0083..bcf3f3ef2 100644 --- a/packages/snapcompact/test/snapcompact.test.ts +++ b/packages/snapcompact/test/snapcompact.test.ts @@ -924,6 +924,7 @@ describe("compact", () => { expect(cols.slice(0, 3)).toEqual([hiCols, hiCols, hiCols]); expect(cols.slice(-3)).toEqual([hiCols, hiCols, hiCols]); expect(cols[3]).toBeGreaterThan(hiCols); + expect(result.summary).toContain(`${hiCols} or ${cols[3]} characters wide`); }); it("keeps foveated Silver archives on the Silver font", async () => {