HASH 0752e997b344
DATE 2026-07-18
SUBJECT web: commit pages collapse to diffstat at humane thresholds, per-file diff
cap
FILES 1 CHANGED HASH 0752e997b344
DATE 2026-07-18
SUBJECT web: commit pages collapse to diffstat
at humane thresholds, per-file diff
cap
FILES 1 CHANGED
┌─ ooknet-design/src/lib/git.ts ─────────────────────────────────────────────┐
│ diff --git a/ooknet-design/src/lib/git.ts b/ooknet-design/src/lib/git.ts │
│ index af62406..89af7c7 100644 │
│ --- a/ooknet-design/src/lib/git.ts │
│ +++ b/ooknet-design/src/lib/git.ts │
│ @@ -211,8 +211,9 @@ export interface Commit { │
│ stat?: string; │
│ } │
│ │
│ -/** True when a numstat says the patch is too big for a page - data │
│ - * dumps produce patches in the hundreds of megabytes. */ │
│ +/** True when a numstat says the patch is too big for a page. Data │
│ + * regen commits produced 5MB pages at looser thresholds - a human │
│ + * reads neither a thousand changed lines nor fifty files. */ │
│ export function oversizedNumstat(numstat: string): boolean { │
│ const rows = numstat.split("\n").filter(Boolean); │
│ let lines = 0; │
│ @@ -220,7 +221,7 @@ export function oversizedNumstat(numstat: string): boolean { │
│ const [a, d] = r.split("\t"); │
│ lines += (parseInt(a, 10) || 0) + (parseInt(d, 10) || 0); │
│ } │
│ - return rows.length > 200 || lines > 5000; │
│ + return rows.length > 50 || lines > 1000; │
│ } │
│ │
│ /** One commit with its patch split per file, github-style. Oversized │
│ @@ -245,8 +246,11 @@ export function readCommit(path: string, hash: string): Commi │
│ t { │
│ if (!chunk.trim()) continue; │
│ const m = chunk.match(/^diff --git a\/.+? b\/(.+)$/m); │
│ const file = m ? m[1] : "?"; │
│ + const MAX_FILE_DIFF = 64 * 1024; │
│ const trimmed = │
│ - chunk.length > MAX_BLOB ? chunk.slice(0, MAX_BLOB) + "\n[diff truncated]" : │
│ chunk; │
│ + chunk.length > MAX_FILE_DIFF │
│ + ? chunk.slice(0, MAX_FILE_DIFF) + "\n[diff truncated]" │
│ + : chunk; │
│ files.push({ path: file, diff: trimmed }); │
│ } │
│ return { ...base, files }; │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ooknet-design/src/lib/git.ts ───────┐
│ diff --git a/ooknet-design/src/lib/git.ts b/ │
│ ooknet-design/src/lib/git.ts │
│ index af62406..89af7c7 100644 │
│ --- a/ooknet-design/src/lib/git.ts │
│ +++ b/ooknet-design/src/lib/git.ts │
│ @@ -211,8 +211,9 @@ export interface Commit │
│ { │
│ stat?: string; │
│ } │
│ │
│ -/** True when a numstat says the patch is t │
│ oo big for a page - data │
│ - * dumps produce patches in the hundreds o │
│ f megabytes. */ │
│ +/** True when a numstat says the patch is t │
│ oo big for a page. Data │
│ + * regen commits produced 5MB pages at loo │
│ ser thresholds - a human │
│ + * reads neither a thousand changed lines │
│ nor fifty files. */ │
│ export function oversizedNumstat(numstat: s │
│ tring): boolean { │
│ const rows = numstat.split("\n").filter(B │
│ oolean); │
│ let lines = 0; │
│ @@ -220,7 +221,7 @@ export function oversize │
│ dNumstat(numstat: string): boolean { │
│ const [a, d] = r.split("\t"); │
│ lines += (parseInt(a, 10) || 0) + (pars │
│ eInt(d, 10) || 0); │
│ } │
│ - return rows.length > 200 || lines > 5000; │
│ + return rows.length > 50 || lines > 1000; │
│ } │
│ │
│ /** One commit with its patch split per fil │
│ e, github-style. Oversized │
│ @@ -245,8 +246,11 @@ export function readCom │
│ mit(path: string, hash: string): Commit { │
│ if (!chunk.trim()) continue; │
│ const m = chunk.match(/^diff --git a\/. │
│ +? b\/(.+)$/m); │
│ const file = m ? m[1] : "?"; │
│ + const MAX_FILE_DIFF = 64 * 1024; │
│ const trimmed = │
│ - chunk.length > MAX_BLOB ? chunk.slice │
│ (0, MAX_BLOB) + "\n[diff truncated]" : chunk │
│ ; │
│ + chunk.length > MAX_FILE_DIFF │
│ + ? chunk.slice(0, MAX_FILE_DIFF) + " │
│ \n[diff truncated]" │
│ + : chunk; │
│ files.push({ path: file, diff: trimmed │
│ }); │
│ } │
│ return { ...base, files }; │
└──────────────────────────────────────────────┘
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET