Skip to content

1.27.1

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Sep 02:20
f18f722

🌟 Karpathy LLM Wiki v1.27.1

Highlights

PATCH that turns the Related sections into deterministic output β€” the model no longer transcribes lists it was handed β€” and closes the rewrite-loss classes the wave-B audit found. 46 merge commits / 194 files / +10487 / βˆ’3257 / 3993 tests passing. No breaking changes, no new required settings, no migration.

  • Related lists are now deterministic (Issue #635, PR #636). Siblings born from the same note link each other; a related name the vault already has a page for is written under that page's own title and folder; the two Related sections are rendered from the typed lists instead of transcribed by the model. Measured on a 413-note vault rebuild: dead related entries 24% β†’ 1%, pages without a live outgoing link 103 β†’ 0, sibling lists complete 246/246. Unicode-safe end to end.
  • A paragraph another source footnoted survives a rewrite (PR #631). guardBodyRewrite now restores sourced paragraphs a different-source rewrite dropped β€” 571-pair replay: 120 paragraphs restored, 164 footnotes re-attached.
  • Folder-wrong links re-pointed vault-wide (Issue #624, PR #626). 314 links corrected β€” prose, source-page sections, plus a new end-of-run pass over every page the run wrote.
  • The per-step thinking policy now reaches the stream path (Issue #627, PR #629). The Query Wiki answer the user waits for was thinking 43 of 55s while the keyword call sent reasoning_effort: none; stream now honours taskPolicies.
  • Vault dates are local calendar dates, not UTC (Issue #611, PR #612). All 17 date-write sites route through localDateStamp() β€” east of UTC, days no longer start stamped with yesterday.
  • Two gates before a contradiction record (Issue #609, PR #610). The page sentence must exist AND the source must hold the claim β€” measured 7 of 9 records were previously false.
  • Query no longer hides the page the user named (Issue #623, PR #625). Unicode-aware tokenizer + word-start matching + PPR-ranked merge fixed a 3,025-page German vault loading Kahneman while "Creatin" was absent.
  • Three-phase repo audit cleanup (PRs #632/#633/#634). 8 no-op fixes, one SDK wrap contract, T1/T3 lossless pass (βˆ’82 net LOC, 3932β†’3932 tests).
  • 8 fast-uri Dependabot alerts closed at the root (PR #637). fast-uri ^3.1.7, redundant override dropped, CI pnpm audit gate added, .github/dependabot.yml weekly auto-PRs β€” the fix path no longer depends on a human noticing an alert.

What's in this release

Fixed

  • Related sections rendered from the lists, not the model (PR #636, Issue #635). Three deterministic layers β€” core/related-shaping.ts (sibling edges by kind, vault-answering names to their own title+kind, tag values dropped against the active vocabulary, unanswered names kept and counted), core/related-sections.ts (sections written from typed lists; vault path when known, planned path otherwise; rewrite-kept entries re-resolved in front, one target once across both sections; everything else byte-identical), page-factory/related-links.ts (one helper, three call sites collapse to one line each). Default behaviour change without a switch, argued and five-line opt-in available.
  • Sourced paragraphs restored across rewrites (PR #631). preserveSourcedParagraphs in src/core/paragraph-provenance.ts matches footnoted paragraphs into the rewrite by word overlap; guardBodyRewrite composes sections + sourced paragraphs + H1 guards.
  • Folder-wrong links corrected everywhere (PR #626, Issue #624). correctRelatedLinkPrefixes re-points in prose + source-page sections; new Stage 4.5 repointLinksAfterRun reads every written page once, resolves folder-typed links against the run's own pages.
  • Stream path honours per-step thinking policy (PR #629, Issue #627). createMessageStream spreads enableThinking from applyTaskPolicy β€” root cause of the "streamed answer thinks" report (not b302aab, verified).
  • Local-calendar dates everywhere (PR #612, Issue #611). localDateStamp() in src/core/format.ts; full-ISO instants deliberately untouched.
  • Two gates before a contradiction record (PR #610, Issue #609). Gate 1 existing_statement checked against the page; Gate 2 stance as its own small call; demotions never silent.
  • Stop-word substrings + lex/PPR merge fixed (PR #625, Issue #623). \p{L}\p{N}\p{M} word runs, word-start needleHits, PPR-ranked mergeWithPPR.
  • Mention-only pruning no longer cuts edges to existing pages (PR #621, Issue #620). Candidate gate takes an isKnownPage predicate backed by buildVaultResolver.
  • Kept-but-collapsed sections restored (PR #618, Issue #617). Below SECTION_SHRINK_FLOOR β†’ treated as dropped, previous block restored in place.
  • Mentions re-emit never shrinks the accumulated block (PR #616, Issue #614). Existing length is the floor.
  • Related-page rewrites never land on source pages (PR #615, Issue #613). Lookup scoped to entities/ + concepts/.
  • Contradiction source_page resolved against the page index (PR #602, Issue #601). Never trusted from the model β€” 3 user notes previously hit.
  • Merge triage contradictions reach log + report (PR #606, Issue #605). onContradiction callback collects both lanes.
  • Ingest ownership from source_file, not sources: (PR #596, Issue #595).
  • Picker shows disk state, not session memory (PR #600, Issue #598).
  • Cross-folder dedup routes through the semantic call (PR #589, Issue #588). Folder never decides.
  • Preamble cut no longer eats the first section (PR #580, Issue #579 via audit).
  • Cancelled ingest no longer reads as completed (PR #583, Issue #582).
  • Repetition-loop requires consecutive source occurrences (PR #572, Issue #542).
  • __proto__ duplicates rejected in task policies (PR #571, Issue #543).
  • Audit phase-1 latent bugs (PR #632). UTC-day site β†’ localDateStamp(), ru locale gaps, dead code.
  • Dev-instrument link retarget is no longer a silent no-op (PR #591, Issue #590).

Changed

  • Two-gate contradiction lane replaces the model's word (PR #610). See Fixed.
  • Contradiction marker lane surfacing (PR #578, Issue #575). contradictions: marker read back + item-level lane given one (PR #576).
  • contentHash drift flag (PR #577, Issue #220 Tier 0 read half). Source notes changed since ingest flagged.
  • Merge calls get the note's own paragraphs (PR #579).
  • Heading spacing + blank-line runs normalised at the write gate (PR #581).
  • minAliasLength threaded to the create path (PR #559, Issue #558).
  • Gate link-markup parens no longer miscount (PR #564, Issue #562).

Refactor

  • Three-phase repo audit (PRs #632/#633/#634). Phase 1: 8 no-op changes (UTC-day site, ru locale gaps, dead appendGranularityToPrompt, byte-identical buildKnownTargets folded, createMergeCtx helper, test twin folded, graph-cache test renamed). Phase 2: openai-sdk-client onto canonical wrapReasoningContent (one wrap contract, missing </think escape + idempotence guard). Phase 3: escapeRegExp β†’ canonical escapeRegex, 22 tests relocated into __tests__ mirrors (zero loss), 12 dead exports privatized, controller.ts report round-trip collapse (βˆ’85L), zero-consumer OUTPUT_MODES deleted.

Added

  • Merge triage contradiction lane surfaced (PRs #576/#578). Item-level contradictions get a lane; the marker's read half shows in lint.
  • contentHash drift detection (PR #577). Read half of Issue #220 Tier 0.
  • Dev-instrument link cache + resolver (PR #591). retargetLinksToPage works under the instrument.
  • Co-maintainer credit (PR #619). manifest/README/NOTICE list DocTpoint.
  • CI pnpm audit gate + .github/dependabot.yml (PR #637). Dependency security is now automated, not human-remembered.
  • SEO metadata blocks completed across all 11 READMEs (this release). DE/PT/RU/ZH-Hant gained the block EN and the other locales already had.

Docs

  • README Marp URL + LICENSE relative links fixed (PR #622, community PR by @NotAFlightRisk).
  • Wave-C/B records, audit trio, v1.27.1 prep in CHANGELOG/ROADMAP/MEMORY.

Upgrading from v1.27.0

If you installed via Obsidian's Community plugins flow (the normal case), this release appears as a one-click update in Obsidian Settings β†’ Community plugins. Click Update and you're done β€” your wiki, settings, and history carry over automatically.

One deliberate default-behaviour change: the two Related sections on generated pages are now written from the typed lists (deterministic) rather than transcribed by the model β€” the previous behaviour produced a dead link one time in four. Existing pages are rewritten on their next ingest with the corrected links. No settings changed, no migration.

What's accepted (and why)

This release touched zero production code in the release commit itself β€” v1.27.1's 46 feature commits all passed Gate 1 with eslint-plugin-obsidianmd local lint at 0 errors, and the release prep commit (version bump + docs) changed only non-code files. The Bot-scan surface is unchanged from the v1.27.0 baseline; the pre-existing accepted-structural warnings (128, all documented in the v1.27.0 notes) carry over untouched. Local mirror stands in for the GitHub-hosted Bot pipeline per the v1.26.2 hardening record.

Installation

Install or update via the standard Obsidian plugin flow β€” your existing wiki is preserved on upgrade.

  1. From Obsidian β€” Settings β†’ Community plugins β†’ Browse β†’ search "Karpathy LLM Wiki" β†’ Install (or Update, if you already have it). Then toggle Enable.
  2. From the marketplace β€” community.obsidian.md/plugins/karpathywiki β†’ Add to Obsidian.
  3. Manual β€” only needed if you want a specific version or are running Obsidian without the in-app marketplace. Download main.js, manifest.json, and styles.css from the release assets below into .obsidian/plugins/karpathywiki/, then enable the plugin in Obsidian Settings β†’ Community plugins.

Tests

3993 tests passing (282 files). Up from v1.27.0's 3677 / 260 β€” +316 across the cycle's fix + feature PRs, including 22 new tests for the deterministic related-lists modules, 13 for the sourced-paragraph guard, 4 for link re-point, and the audit trio's relocations (3932β†’3932, moves not losses).

Contributors

  • @green-dalii (Greener-Dalii) β€” Maintainer and primary author. PRs #560, #561, #566, #571, #572, #573, #574, #587, #632, #633, #634, #637 (+ release commit #643). (Wave-A/B docs and memory consolidation, audit phase-1/2/3 cleanups, dependency-security root fix, release orchestration.)
  • @DocTpoint β€” Architect-level contributor. 33 PRs: #557, #559, #564, #569, #576, #577, #578, #579, #580, #581, #583, #585, #586, #589, #591, #596, #600, #602, #606, #607, #610, #612, #615, #616, #618, #619, #621, #625, #626, #629, #630, #631, #636. Continues the ingest-reliability + query-correctness record: pnpm-workspace migration, alias-floor threading, gate link-markup fix, domain-axis write side, contradiction-marker lane surfacing, drift detection, merge-paragraph payload, markdown write-gate normalisation, cancel-safe ingest, reasoning-laundering guards, cross-folder dedup, dev-instrument link retarget, ingest ownership from source_file, disk-state picker, contradiction source_page resolution, triage-contradiction reporting, three-outcome gate table, two-gate contradiction records, local-calendar dates, related-page source-scoping, Mentions floor, kept-but-collapsed restoration, candidate-gate known-page edges, co-maintainer credit, stop-word/PPR query fix, vault-wide link re-point, stream-path thinking policy, concept Description routing, sourced-paragraph rewrite guard, and deterministic related lists. Per-PR / per-issue index in CHANGELOG.md Β§1.27.1. All 28 closed issues this cycle were his own reports β€” fixed by his own PRs, credited once under his author bullet per the no-double-credit rule.
  • @NotAFlightRisk β€” README Marp URL + LICENSE relative-link fix across all 11 READMEs (PR #622). First community PR of the cycle.

Full Changelog

1.27.0...1.27.1