You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
yagni: SessionStore re-implements TTL plus LRU eviction that src/_core/cache/LRUCache already provides (src/_core/search/session.ts:76). Back it with new LRUCache<string, RecallSession>({maxSize: 10, ttlMs: 30 * 60 * 1000}) and delete evictExpired, evictLRU and the manual lastAccessedAt bookkeeping (~45 lines).
shrink: parseDateHint has 24 regex branches (src/_core/search/dates.ts:160). Keep every phrasing the recall tool description promises (today, yesterday, this/last week|month|year, N days|weeks|months ago, this day last year, in , , since , before , on this day, ISO date/month) and drop the rest ("this date in history", "every year on this day", "day before yesterday", spelled-out numbers, "10 march 2026") together with the word-number table and their tests (~120 lines).
stdlib: pad() and toIsoDay() hand-format a UTC date (src/_core/search/dates.ts:57). toIsoDay(d) is d.toISOString().slice(0, 10); the remaining pad calls are String(n).padStart(2, "0") (~8 lines).
shrink: CREATE TABLE IF NOT EXISTS schema_migrations is copy-pasted into all five checkpointed migrate functions (src/_core/db/schema.ts:608). Hoist into one ensureMigrationsTable(db) (~25 lines).
shrink: the dedup branch in src/_core/search/scan.ts:245 rebuilds the numbered-context window inline, duplicating extractContext. Give extractContext explicit start/end arguments (~20 lines).
yagni: describeModelCacheDir reverse-engineers the precedence resolveModelCacheLocation just computed (src/_core/config/index.ts:74). Keep the ModelCacheResolution on the config (~13 lines).
yagni: resolveModelCacheDir is an exported one-liner with one caller (src/_core/embeddings/model-cache.ts:20). Inline (~6 lines).
shrink: budgetResults is a deprecated alias for allocateBudget with two callers (src/_core/search/orchestrator.ts:39). Inline and drop the export (~12 lines).
Verification
npm run build and npm run test:run green before and after. The dates tests for every kept phrasing still pass; removed phrasings get their tests removed in the same commit and listed in the PR.
Merged PR #135 into main with --no-ff (commit dfbbb5c). Post-merge on main: build clean, 131 test files / 1679 tests passing (was 131 / 1689; the 10 dropped cases covered removed date phrasings, the manual session LRU bookkeeping and resolveModelCacheDir).
Activity
devinmlowe commentedon Sep 21, 2026
PR: #135 (branch
ponytail/core-shrink).lastAccessedAtcase, 8datescases for dropped phrasings, 1resolveModelCacheDircase); listed in the PR.migrateExpandedTypesprobe was deleted after checking [db] migrateExpandedTypes fails with FOREIGN KEY constraint failed on any database with relationships rows, leaves entities_new behind, and then fails every subsequent init #101 — that fix lands on the rebuild and the base DDL, not on the probe path, so [db] migrateExpandedTypes fails with FOREIGN KEY constraint failed on any database with relationships rows, leaves entities_new behind, and then fails every subsequent init #101 is untouched.<month> <day> [<year>], because the commitments due-date fallback relies on it.--date-hint(the CLI has no--dateflag): same ids and byte-identicaldateFilterbefore and after forlast weekandon this day.Merge PR #135: _core shrink (#120)
devinmlowe commentedon Sep 21, 2026
Merged PR #135 into main with --no-ff (commit dfbbb5c). Post-merge on main: build clean, 131 test files / 1679 tests passing (was 131 / 1689; the 10 dropped cases covered removed date phrasings, the manual session LRU bookkeeping and resolveModelCacheDir).