Repository navigation
Bump the Grail pin to main as of 2026-10-15, and build unicodedata at install - #138
Merged
Merged
Conversation
… install Grail beef473 -> 9fb5d23 (388 commits, 175 PRs). Grail's install.sh gains one step (#1556): scripts/deployUnicodedata.gs, after deployGemdb.gs, builds and commits unicodedata's tables. Without it a session's first normalize or category call takes about a second and leaves the session with something to commit, which is what makes gemdb.transaction() refuse to start; since Grail #1512, compiling an identifier NFKC changes reaches it too. install-grail.sh mirrors it as step 4, warn-only as upstream's is, and an integration test pins it: measured failing without the step (needs_commit True after the first normalize) and passing with it. Everything else install-grail.sh drives is byte-identical, the REQUIRED list is all present, and install.gs only adds inputs. The shim's source changed, so every platform rebuilds it; Makefile and GCI calls unchanged. The gemdb Python package is byte-identical. stdlib click and requests move to _grail_click and _grail_requests (#1634); GemDB references neither. mcp_server and GemDB Stats are already at their latest, so their pins stay. Verified on arm64.Darwin against 4.0.0.a4, before the install step was added: bundle:grail (1327 referenced files, all present), bundle:mcp, bundle:stats, test:extent; npm test 948 passed; test:integration 12 files, 141 passed plus the existing expected-fail and todo; package.sh passed check-vsix.sh. After it: grail.test.ts 14 passed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
jgfoster
pushed a commit
that referenced
this pull request
Oct 16, 2026
- Move #109's entry (usage data records the editor) out of the 1.6.0 section, where a merge from before the promotion put it: it shipped after 1.6.0, and neither the v1.6.0 tag nor its release notes carry it. - One Fixed heading in [Unreleased], where three PRs had each added one. - Add entries for #121 (Survives logout takes effect at once on Linux) and for the Grail pin bump in #138. - Rewrap [Unreleased] at 100 columns; no wording changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves
PINNED_GRAIL_REFfrombeef473to9fb5d23, Grailmainas of today: 388 commits, 175 PRs. Grail's own CI is green on9fb5d23. mcp_server (d836520) and GemDB Stats (v1.1.1) are already at their latest, so their pins stay.The one installer change: build unicodedata at install
Grail's
install.shgains a step (Grail #1556). AfterdeployGemdb.gs, it runsscripts/deployUnicodedata.gs, which builds and commits unicodedata's tables. Without that step, a session's firstnormalizeorcategorycall:gemdb.transaction()refuse to start.Since Grail #1512, compiling an identifier that NFKC changes (
µ) also reaches it.resources/install-grail.shnow mirrors it as step 4. A failure only warns, as upstream's does: Python still works, only slower on first use.A new test in
grail.test.tspins this. Measured both ways: without the step it fails (needs_commit()isTrueafter the firstnormalize, 1.2 s), and with it the test passes. Changinginstall-grail.shalso changes the install record, so an update reinstalls Grail, which a new pin needs anyway.Installer compatibility otherwise
install-grail.shdrives is byte-identical, and theREQUIREDlist is all present.install.gs: additions only. Three runtime inputs (GrailCommitCoordinator,JSONDecoder,PythonTokenizerIdentifiers) plus test classes, all undersrc/.gemdbPython package is byte-identical, and every Smalltalk selector GemDB sends is still defined on the same class.clickandrequestsmove to_grail_clickand_grail_requests(#1634), andimportlib/metadata.pygives way to CPython's package (#1664). GemDB references none of them.Behaviour changes a user can meet
import clickorimport requestswith neither pip-installed is nowModuleNotFoundError. Flask still works.vars(obj)is a live view, so writing through it changes, and commits, the object.TypeError: extra lambda arguments, or an argument given twice.date == datetimeisFalse, and ordering a date against a datetime raises.µandμare the same name.Not verified: a database carried over from 1.6.0
Neither of these was exercised here:
PyDateTimechanges superclass, so a datetime committed under the old pin remains an instance of the old class object.clickfrom a path that no longer exists. Grail's runtime-generation bump should discard that registry.Both are worth checking on a real 1.6.0 database with Brain Freeze before release.
Verified locally
On arm64.Darwin against 4.0.0.a4:
bundle:grail: 1327 referenced files, all presentbundle:mcp,bundle:stats,test:extentnpm test: 948 passedtest:integration: 12 files, 141 passed, plus the existing expected-fail and todo indebugConsole.test.tspackage.sh: passedcheck-vsix.shgrail.test.ts, 14 passedThe full write-up is in the
vendor-pins.shcomment. The changelog entry goes in the release PR, as for previous bumps.🤖 Generated with Claude Code