Skip to content

Release on v* tag push - #3

Merged
ghosthack merged 14 commits into
mainfrom
claude/clever-ptolemy-key2ws
Nov 7, 2026
Merged

ghosthack merged 14 commits into
mainfrom
claude/clever-ptolemy-key2ws

Conversation

@ghosthack

Copy link
Copy Markdown
Owner

Publishing to Maven Central now starts when a v* tag is pushed, instead of when a GitHub release is published. This matches the maintainer's other repositories, and a release no longer needs the GitHub UI.

The validate job keeps its existing checks:

  • the tag matches the project version
  • the version is not a snapshot
  • the tag still points at the pushed commit

It adds one more: the tagged commit must be on main, so a stray tag on another branch cannot publish. The manual bundle dry run is unchanged.

The diff against main touches only .github/workflows/release.yml. The branch also carries a no-change merge of its earlier, already-merged history, so this should be squash-merged.


Generated by Claude Code

claude added 14 commits November 7, 2026 04:51
HTML tables padded every row to the widest row with no column cap, so a
~1 MB table of one wide row over many short ones grew as rows x columns
and ran out of memory. Cells past the 128-column cap (the Markdown limit)
now join the last column, keeping their text.

BackgroundCache handed the same in-flight future to every request and
prefetch caller, so one caller cancelling or timing it out broke every
other caller and later requests until the build finished. Each caller
now gets its own follower future.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VwoQ7jw5qzPPePBj6NEpaS
BlockView and XmlTreeView saved a document's scroll position from the
flow's first visible cell, which only moves on a layout pass. Showing
two documents before a pulse (fast keyboard browsing) saved the
outgoing document with the previous document's row, so it later
reopened scrolled to an unrelated position. Each view now keeps the row
it last scrolled to until its next layout pass and reports that row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VwoQ7jw5qzPPePBj6NEpaS
The reader's key filter matched UP, DOWN, J, K, HOME, END and the page
keys without looking at modifiers and consumed them, so application
accelerators such as Ctrl+K, Ctrl+J, Cmd+Up or Ctrl+End scrolled the
reader instead of firing while it had focus. Keys with Ctrl, Alt, Meta
or the shortcut modifier now pass through; Shift still pages back with
Space.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VwoQ7jw5qzPPePBj6NEpaS
Ctrl+Space and similar accelerators toggled the focused branch and were
consumed while the tree had focus; only a plain Space toggles now.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VwoQ7jw5qzPPePBj6NEpaS
Every release job checked out the tag by name, so a tag force-moved
while the workflow ran could publish code that validate and CI never
saw. All three checkouts now use the event's commit, and validate fails
if the tag no longer points at it.

The deploy and the manual bundle dry run, which both sign with the
release key, now run in a maven-central environment that can carry
required reviewers and the secrets, and the dry run is limited to main.
The dry run also checks that every artifact in the bundle is signed
instead of only that a bundle exists, and the help and versions
plugins it invokes by prefix are pinned.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VwoQ7jw5qzPPePBj6NEpaS
The docview-textmate jar carried only the VS Code MIT license and the
TextMate Bundle License, but most grammars come from other MIT
upstreams (MagicStack, Shopify, GitHub/Atom, Jeff Hykin, Microsoft
grammar repos, the Atom Java grammar via redhat-developer), and MIT
requires each one's copyright and permission notice to travel with the
copies. The vendored TM4E core likewise translates MIT code from
vscode-textmate, vscode and node-oniguruma, whose notices were only in
source headers that compiled classes drop.

Add grammars/THIRD-PARTY-NOTICES.txt with each upstream's notice at the
pinned commit (VS Code's fuller cgmanifest notice where it records
one), and tm4e/NOTICE-MIT.txt packaged under META-INF/licenses/tm4e/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VwoQ7jw5qzPPePBj6NEpaS
The project has a single maintainer, so an approval gate and
environment-scoped secrets add setup without guarding against anyone.
The release stays pinned to the published commit, and the dry run stays
limited to main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VwoQ7jw5qzPPePBj6NEpaS
The per-document budget timed whole tokensForLine calls, and the
TextMate session budget timed whole tokenizeLine calls. Both counted
grammar rule compilation and time spent waiting for the shared grammar
lock while another document (or a low-priority prefetch) tokenized, so
concurrent builds drained a document's budget. The document budget was
also only checked before each call, while one TextMate call could
tokenize every earlier line of a block and run up to the 1 s session
budget past it.

HighlightSession gains a default tokensForLine(line, maxNanos, spent):
the budget passes its remaining time and is charged what the session
reports. The default keeps the old behaviour (wall time, no allowance),
and the guarded wrapper forwards it and charges wall time to a session
that fails before reporting. TextMate caps each line's deadline at the
smaller of 100 ms, the session's remaining budget and the call's
allowance, and reports only regex search time.

LineDeadline also no longer counts a just-finished search twice when
the watchdog races its bookkeeping, and keeps a thread interrupt that
Joni turned into an InterruptedException and cleared.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VwoQ7jw5qzPPePBj6NEpaS
- Ordered lists in WebView pages now carry a start attribute from their
  first marker, so "3. a" shows 3 and an ordered run after a bullet run
  continues its numbering, as the native reader already showed.
- Thematic breaks may have spaces between markers ("* * *", "- - -",
  "_ _ _"), per CommonMark; they rendered as an emphasized list item or
  paragraph. One shared check now replaces five copies of the pattern,
  and mixed markers ("- * -") are no longer a rule.
- The contents tree takes heading text from the renderer's own inline
  output instead of separate patterns, so "snake_case_name" and a code
  span holding link syntax read the same as on the page.
- An object or applet element no longer hides everything after it when
  left unclosed: its tags are dropped and its fallback content is shown
  through the same whitelist, as a browser without plugins does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VwoQ7jw5qzPPePBj6NEpaS
The macos-14 job was cancelled before a runner was assigned on two
attempts, with no steps run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VwoQ7jw5qzPPePBj6NEpaS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VwoQ7jw5qzPPePBj6NEpaS
Publishing now starts when a v* tag is pushed, as in the maintainer's
other repositories, so a release no longer needs the GitHub UI. The
validate job keeps its checks (tag matches the project version, no
snapshot, tag still on the pushed commit) and now also requires that
commit to be on main, so a stray tag on another branch cannot publish.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VwoQ7jw5qzPPePBj6NEpaS
@ghosthack
ghosthack merged commit da2a2ec into main Nov 7, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants