Releases: textmatelives/textmate
Release list
TextMate 2.2.1-undead
2026-08-27 (v2.2.1-undead)
One stability fix. See all changes since v2.2.0-undead.
Stability
- KeyCue and other accessibility clients no longer crash TextMate while inspecting menus on macOS 26.6.2. AppKit's
NSMenuaccessibility path raises and internally catches a compatibility exception for its removedaccessibilityPerformAction:fallback. TextMate's fail-fast exception observer previously calledabort()before AppKit could catch it. Reported, diagnosed and fixed by @BenjaminX. (#54, #55,172a78fa)
What's Changed
- Fix KeyCue-triggered menu accessibility crash on macOS 26.6.2 by @BenjaminX in #55
- Release v2.2.1-undead by @dayglojesus in #57
New Contributors
- @BenjaminX made their first contribution in #55
Full Changelog: v2.2.0-undead...v2.2.1-undead
TextMate 2.2.0-undead
2026-08-26 (v2.2.0-undead)
The rave build system is replaced by CMake, two crashes are fixed, and a fork-wide sweep gets bundle Ruby running on the system interpreter — 50 bundle pull requests across 40 repositories. See all changes since v2.1.5-undead.
Build
- rave is gone; the tree builds with CMake and Ninja.
bin/rave(1,686 lines of Ruby),configureand the 60default.ravefiles are removed, along with two scripts only rave called —bin/gen_buildandbin/notarize_await, the latter obsolete since notarytool replacedaltool. The test suites run under CTest, and CI and the release workflow configure and build through CMake. ⌘B still builds and relaunches TextMate:bin/relaunch_appreproduces rave'sTextMate/runtarget behind aruntarget. (#42,d4f6338f,65d907b6,94bd8270) - The CMake build came from @tectiv3. tectiv3/textmate migrated TextMate to CMake first, and this fork adopted their work rather than repeating it: the root
CMakeLists.txt,cmake/TextMateHelpers.cmake,CMakePresets.jsonand 54 of the moduleCMakeLists.txtfiles are theirs. Three more — SoftwareUpdate, network and CrashReporter — were written here because tectiv3 had dropped those modules, and version derivation, Markdown rendering and a few include scopes were adapted to this tree. Thanks for doing it first. - boost, google-sparsehash and ragel are no longer build dependencies.
google::dense_hash_mapgives way tostd::unordered_map,ascii.rlto a hand-written ASCII plist parser,boost::varianttostd::variant, andboost::crc_32_typeto zlib'scrc32(). Ported from tectiv3/textmate36acd469,34e166b9and2c49eead. multimarkdown is deliberately retained — it drives the twelve in-app Help pages as well as the About window, and is build-time only. (#42,0bbeb579) - Deployment target raised from 10.12 to 14.0, which the dependency removals require (
std::variantneeds a modern libc++).LSMinimumSystemVersionfollows it, so the app now declares macOS 14 as its floor. (#42,d8867a71) - Globbed sources are re-scanned on every build. CMake's
file(GLOB)runs once at configure time, so a newly added file was silently ignored until someone re-ran cmake by hand — and for tests that failure is invisible: the file is not compiled into the runner and the suite passes without it.CONFIGURE_DEPENDSmakes ninja recheck each glob. (#43,37bc59a9) - Contributions.md aggregates by person instead of by commit. One entry per commit rendered 739 rows and 1.1 MB of HTML that changed on every push; it is now one row per contributor — avatar, name, handle, commit count, years active — 107 contributors and 39 KB. Identity keys on the GitHub login, so someone who committed under several addresses appears once. (#42,
8e01ffc8)
Stability
- Fixed a crash on launch while restoring a session. An uncaught
std::bad_variant_accessescapedNSApplicationMainandmain()'s handler calledabort(). Movingplist::any_toffboost::varianthad renamed the lenientplist::get<T>toplist::convert<T>and given the old name to the strict accessor, so call sites that relied on coercion silently became strict — and grammars and themes in the wild do carry a numericnameor a stringdisabled. The lenient read is restored at the schema field handlers, the theme colour and font reads, and thedisabledcheck inparse::convert_plist. (#43,bc899cb4) - Fixed a crash on ⌘G and ⇧⌘G in the HTML output window.
-findNext:and-findPrevious:passedcompletionHandler:nilto-[WKWebView findString:withConfiguration:completionHandler:], whose handler parameter is implicitly nonnull; WebKit invokes it without a null check, faulting at0x10on the async IPC reply. The find dialog was never affected — only the two keyboard shortcuts. (#44,8473c153)
Editor
- Tab titles and close buttons are centred again. Both were pinned a few points above the bottom of the tab, which only centres them in a 22pt tab — the height
OakTabBarViewasks for. As a titlebar accessory it is fixed at 36pt whatever it requests, so tabs are 35pt and both subviews sat well below the middle. They are constrained to the tab's centre instead. (#46,a48d539e)
Commands
- Commands run in a UTF-8 locale. Launched from Finder the app inherits no
LANGorLC_*, and neither is in the environment whitelist, so everything it spawned landed in the C locale. For Ruby that meansEncoding.default_externalis US-ASCII andENVstrings come back taggedASCII-8BIT, so interpolating aTM_FILEPATHcontaining an accent raisedEncoding::CompatibilityError.bash_init.shhad exportedLC_CTYPEsince forever, butfix_shebangonly prepends that preamble to commands with no shebang of their own — every#!/usr/bin/env rubycommand went without. It is now set insetup_basic_environment(), covering all of them. (#48,5cab4eef) - No more
env: ruby18: No such file or directory. macOS has noruby18, so every command carrying that shebang died at exec. Fixed in Avian.tmbundle, which ships inside the app and has no upstream repo of its own, and in the Bundle Editor command templates, which were minting aruby18shebang into every newly created command. The 1.8-era-KUflag — which Ruby 2.6 warns about on every run — is replaced by-Eutf-8. (#45, #47,f8803570,525ac364)
Bundles
The embedded bundles are pinned by SHA and ship with the app; everything in the catalogue auto-updates from main and arrives on the next poll.
- Word Count works again.
Text.tmbundlerequiredjcode, removed in Ruby 1.9, and called theString#jcountit added, so the command died at therequireon a fresh install. Pin34ab5891→f3fd9fc9. (#51, text.tmbundle#1, thanks @capac) - Every command that used
shelltokenizewas broken.lib/shelltokenize.rbfailed to parse at all under the system Ruby —invalid multibyte escape: /[^\w_\-\+=\/\x7F-\xFF]/— whatever shebang the caller carried. Bundle Support and Source pins bumped to pick that up, along withFile.exists?/ERB.newmodernization (thanks @mattneub) and the Source shebang fix. (#49,4a9664fb) ruby18shebangs replaced across 15 bundles — cvs, lua, bundle-development, cron, groovy, html, java, markdown, perl, php, python, ruby, source, xcode and yaml — andruby20in html and rust.- The 1.8-era
-Kflag replaced with-Eutf-8in 18 bundles — ant, applescript, arduino, cmake, git, golang, haskell, Julia, nim, ninja, pdb, processing, r, rust, scala, swift, tads3 and vagrant. Dropping it outright is not enough: with no locale setEncoding.default_externalfalls back to US-ASCII, which is what-KUwas there to prevent. Hash#to_plistresolves again in 6 bundles — ant, apache, git, objective-c, ocaml and html — which used it without requiringprivate/plist.- Markdown list commands work under modern Ruby.
List.parsecalledString#to_a, removed in Ruby 1.9. (markdown.tmbundle#2, thanks @tbates) - GitHub Markdown preview works under Ruby 4.0. Rouge 3.x calls
CGI.parseinLexer.lookup_fancy, and Ruby 4.0 ships onlycgi/escape, so any code block with no language tag — including every indented one — raisedNoMethodErrorwhenTM_RUBYpointed at a modern interpreter. Thecgigem is now a declared dependency. (GitHub-Markdown.tmbundle#3, reported by @capac) - Hyperlink Helper matches non-ASCII URLs. URL detection covered ASCII only, so an IRI stopped at the first accented character; matching also no longer runs through Unicode whitespace. (hyperlink-helper.tmbundle#1, #2, thanks @tectiv3)
- AppleScript URL escaping uses
URI::DEFAULT_PARSER.escapeinstead ofURI.encode, removed in Ruby 3.0. (applescript.tmbundle#2) - iPhone dropped from the catalogue, 108 entries → 107. Its
Completion: Inside Bracketscommand requires a symlink into the flat TextMate 1 bundle layout, which cannot resolve under one-repo-per-bundle; Objective-C grammar and completion come from objective-c.tmbundle. It was never a default bundle, so nothing installed it. (#50, bundle-support.tmbundle#9)
What's Changed
- Replace the rave build system with CMake by @dayglojesus in #42
- Fix crash on launch from strict plist field reads by @dayglojesus in #43
- Fix crash on Cmd-G in the HTML output window by @dayglojesus in #44
- Centre tab titles and close buttons in the tab bar by @dayglojesus in https://github....
TextMate 2.1.5-undead
2026-08-21 (v2.1.5-undead)
Maintenance release: seven stalled community fixes adopted from the upstream PR queue, the Ruby build helpers brought up to Ruby 3, and the unused SyntaxMate XPC service removed. See all changes since v2.1.4-undead.
Editor
- File browser and document view backgrounds render correctly again. (#39,
b87d4641) attr.filebrowseris now set while the file browser pane has focus, so scoped settings and key bindings can target it. (#39,5e39c5ee)- Corrected a "toggleing" typo in Preferences. (#39,
6236dcb0)
Stability
- Avoided a clang 15 crash in Find caused by an incorrect array size. (#39,
d115b6f7) - Fixed an incorrect number of seconds in a day in
format_string. (#39,9a41ea5c) - Fixed a cast of a non-Objective-C pointer in
shared_ptrin RMateServer. (#39,62ad24f4) - Silenced the
vforkdeprecation warning on macOS Monterey, pending migration toposix_spawn. (#39,bb047ecb)
Build tooling
- The Ruby helper scripts are Ruby 3 compatible. ERB usage was modernized to eliminate deprecation warnings. (#38,
fc835f67) gen_credits.rbuses a JSON cache instead of DBM, which is no longer bundled with Ruby 3. (#38,c187e5dc)
Housekeeping
- Removed the unused SyntaxMate XPC service. (#40,
129c1b03)
Release infrastructure
- The Apple signing identity is gated behind a required reviewer. The signing secrets moved from repository scope into a
releaseenvironment, so a signed build cannot be produced without explicit approval. (#34,b00a4ee7) actions/checkoutis pinned to a full commit SHA in every workflow, with SHA pinning now enforced repository-wide. (#35,4c8f75dc)- Added
CODEOWNERS. (#36,8b1c6b8b)
What's Changed
- Gate Apple signing secrets behind the release environment by @dayglojesus in #34
- Add CODEOWNERS by @dayglojesus in #36
- Pin actions/checkout to a full commit SHA by @dayglojesus in #35
- Build tooling: make the Ruby helper scripts Ruby 3 compatible by @dayglojesus in #38
- Adopt seven stalled community fixes from the upstream PR queue by @dayglojesus in #39
- Remove the SyntaxMate XPC service by @dayglojesus in #40
- Release v2.1.5-undead by @dayglojesus in #41
Full Changelog: v2.1.4-undead...v2.1.5-undead
TextMate 2.1.4-undead
2026-06-11 (v2.1.4-undead)
Bugfix release: the GitHub Markdown preview no longer dies with a LoadError on installs that predate 2026-06-08 (#29). See all changes since v2.1.3-undead.
Bundles
- Stale Bundle Support installs heal themselves. The shared gem store (
tm/gems) had landed only in the app's embedded copy of Bundle Support — the upstream bundle repository and its pin never changed, so existing installs kept a copy without it while the auto-updating Markdown (GitHub) bundle began requiring it. The library (and the Markdown (GitHub) default-bundle promotion from #23, which had drifted the same way) is now published upstream, and the bumped pin makes every stale install re-copy Bundle Support on next launch. (#30,f71b6df2)
What's Changed
- Bump Bundle Support pin so stale installs receive tm/gems by @dayglojesus in #30
- Release v2.1.4-undead by @dayglojesus in #31
Full Changelog: v2.1.3-undead...v2.1.4-undead
TextMate 2.1.3-undead
2026-06-11 (v2.1.3-undead)
Bugfix release: the app no longer talks to the metered GitHub API at all, fixing update checks that failed around the clock on networks whose unauthenticated quota (60 requests/hour per IP, shared by every tool on the network) was exhausted (#26). See all changes since v2.1.2-undead.
Software Update
- Update checks can no longer be rate-limited. The update feed moved from the GitHub Releases API to git's smart-HTTP ref advertisement — the same unmetered endpoint
git ls-remotereads. The newestrefs/tags/v*tag is the latest version (the beta channel includes-betatags, release skips them) and the download URL follows the release asset convention. (#27,c355ab70) - Errors now say what went wrong. A rate-limited network reports “GitHub API rate limit reached for this network. Try again after ⟨reset time⟩.” instead of “Incomplete server response.”; other server errors surface the server's own message, and an unexpected content type (e.g. a captive portal) names itself. (#27,
c355ab70)
Bundles
- Bundle updates no longer spend API quota. Ref-to-SHA resolution uses the same unmetered ref advertisement instead of one Releases-API call per bundle per poll, so a busy network can no longer starve bundle updates either. (#27,
c355ab70)
What's Changed
- Stop using api.github.com entirely; fix rate-limited update checks by @dayglojesus in #27
- Release v2.1.3-undead by @dayglojesus in #28
Full Changelog: v2.1.2-undead...v2.1.3-undead
TextMate 2.1.2-undead
2026-06-10 (v2.1.2-undead)
Feature release: a working prerelease (beta) update channel, a shared RubyGems store that lets bundles declare gem dependencies, GitHub-flavored Markdown by default, and a fork identity pass across the About window, preferences, and themes. See all changes since v2.1.1-undead.
Software Update
- Prerelease (beta) channel implemented. The beta channel now reads the repository's release list and offers the highest-version non-draft release, prerelease or stable — so beta users get betas as they appear and converge back onto stable when it catches up. The "Prereleases" item returns to the Software Update preferences, and versions containing
-betapublish as GitHub prereleases, keepingreleases/latest(the stable feed) on the stable build. (#24,d2c9a504)
Bundles
- Shared gem store for bundles. A bundle can declare a
Support/Gemfile;TextMate::Gemsinstalls it once into a shared, Ruby-ABI-keyed store under~/Library/Application Support/TextMate/Gems. Failures alert natively and log full detail; nothing falls back to system gems. (#21,b93c76cf) - Gems warm at install time. Installing a Gemfile-bearing bundle starts its gem install in the background immediately, so the first command that needs them doesn't stall. (#22,
014e57a3) - Markdown (GitHub) is a default bundle. GFM syntax highlighting and preview (rendered by redcarpet + Rouge — no Python dependency) now installs out of the box instead of being opt-in. (#23,
15da2268)
App and UI
- Undead theme ships, a Twilight-derived fork theme. (#19,
3d9da91c) - SF Symbols in the preferences toolbar replace the legacy raster icons. (#20,
2bb377b2) - About window fork pass: fork-branded background and feedback link (
7655cfda), Contributions repointed at the fork with avatars and ref scope fixed (03c3d5f3), missing third-party attributions added to Legal (bdf30345), and the defunct Bundles tab removed (151149ab). (#17) - License/registration subsystem retired. The vestigial serial-number machinery is gone. (#15,
bae9095e)
Fixed
- SCM
wait_for_statusbounded, fixing an occasional CI hang. (#18,c8a8ce74)
CI and docs
- Releases gate on an isolated build + test via a reusable workflow. (#14,
c64a7e0e) actions/checkoutbumped to v5 (Node 24 runtime). (#16,077a579d)- Stale
api.textmate.orgnotes corrected in the contributor docs. (#13,0aeda5b6)
What's Changed
- CLAUDE.md: correct stale REST_API / api.textmate.org notes by @dayglojesus in #13
- ci: isolate build/test into a reusable workflow and gate releases on it by @dayglojesus in #14
- Retire the vestigial license/registration subsystem by @dayglojesus in #15
- ci: bump actions/checkout v4 -> v5 (Node 24 runtime) by @dayglojesus in #16
- About window: fork pass by @dayglojesus in #17
- scm: bound wait_for_status to fix CI hang by @dayglojesus in #18
- themes: ship Undead, a Twilight-derived fork theme by @dayglojesus in #19
- prefs: SF Symbols for the preferences toolbar icons by @dayglojesus in #20
- Add TextMate::Gems shared gem store for bundles by @dayglojesus in #21
- Warm a bundle's gems when it is installed, not on first use by @dayglojesus in #22
- Make GitHub-Markdown a default bundle by @dayglojesus in #23
- Implement the prerelease (beta) software-update channel by @dayglojesus in #24
- Release v2.1.2-undead by @dayglojesus in #25
Full Changelog: v2.1.1-undead...v2.1.2-undead
TextMate 2.1.1-undead
2026-05-28 (v2.1.1-undead)
Maintenance release: the software-update mechanism is rebuilt on GitHub Releases, all remaining calls to the retired api.textmate.org are removed, and the app is classified as a macOS application again. See all changes since v2.1.0-undead.
Software Update
- Update feed served from GitHub Releases instead of
api.textmate.org. The check reads the repository'sreleases/latest, and a downloaded build is trusted only if it carries a valid Apple Developer ID signature whose Team Identifier matches the running app — an update signed by a different team, or unsigned, is refused. (#9,96a7e0f7) - Prereleases channel removed until a beta stream exists, so the updater no longer offers builds that aren't published. (
d69723f4)
Privacy
- No more calls to
api.textmate.org. Removed the silent launch-time crash-report upload and the "Submit to MacroMates" checkbox and contact field from the Software Update preferences; the app no longer transmits crash logs or contact details. Bundle-suggestion reachability probes now targetgithub.com. (#9,e4ee811c) - Removed the
blcommand-line tool and theupdaterframework, whose only remaining dependency was the retired bundle catalogue onapi.textmate.org. (e4ee811c)
Fixed
- App no longer misreported as an iOS app. System Profiler classified TextMate.app as
arch_ioson Apple Silicon because the bundle declared no supported platform; it now declaresCFBundleSupportedPlatforms = [MacOSX]and is classified as a macOS (Apple Silicon) application. (#8, #10,9e610a8d)
Build
configureworks against Homebrew on Apple Silicon out of the box. It derives the dependency prefix frombrew --prefix(covering/opt/homebrewand Intel/usr/local) instead of hardcoding/usr/local, so the documented./configure && ninjabuild no longer fails to find boost and sparsehash. CI now exercises this path on a clean runner. (#11,bd3013da)
What's Changed
- Software Update: feed from GitHub Releases, verify via Apple signature by @dayglojesus in #9
- Info.plist: declare CFBundleSupportedPlatforms = [MacOSX] (fixes #8) by @dayglojesus in #10
- configure: use Homebrew prefix so the README build works on Apple Silicon by @dayglojesus in #11
- Release v2.1.1-undead by @dayglojesus in #12
Full Changelog: v2.1.0-undead...v2.1.1-undead
TextMate 2.1.0-undead
2026-05-23 (v2.1.0-undead)
First release of the textmatelives/textmate fork. TextMate builds and ships against macOS 26 on Apple Silicon, with refreshed bundle delivery, an in-process SCM gutter diff, and a signed-and-notarized release pipeline. Commit and PR references throughout. See all changes since v2.0.23.
App and UI
- New Liquid Glass app icon, sourced from an Icon Composer
.iconbundle and compiled at build time. The system handles light, dark, and tinted variants on its own. (0c6319f8) - HTML output backed by
WKWebView(replaces the deprecatedWebView). The git bundle's commit dialog and other bundle-driven HTML windows load on modern macOS again. (a20abe94,f045c65b,c9d831a6,0c058b4f) - macOS 26 compatibility fixes: removed
FSEventStreamFlushSyncto prevent a main-thread hang (78529a60); resolved a deadlock betweenNSUserDefaultsnotification and FSEvents flush (2510f3dc); fixedOakBackgroundFillViewdrawing beyond its bounds on macOS 15+ (72a15176). - Apple Silicon only. Intel binaries removed; deployment target raised to macOS 26.
mateCLI now declaresdisable-library-validationso injected dylibs from launching processes don't get rejected. (fd48bae5)
Bundles
- Catalogue hosted in Bundle Support.tmbundle.
DefaultBundles.plist,AvailableBundles.plist, andBundleFileTypeIndex.plistmove out of the app and into the bundle. Adding a bundle or fixing an extension association no longer requires cutting an app release. (#3,2b828aa0) - First-launch sheet lets you batch-install (or skip) the 40 default-tier bundles. Return installs the checked rows, Esc skips, Space toggles a row. (
0932d14a) - On-demand install: opening a file whose extension matches an uninstalled catalogue bundle now offers to install just that bundle. Bundles you decline are remembered and won't re-prompt. (
47d03525,94d24276,7b0793c7,9f59b9a1) - 110 opt-in bundles wired into the Bundles preference pane as an
AvailableBundlestier alongside the defaults. (3d342b89,7b8d7002) - Bundles pane refresh: gear-icon action menu (
4ea36df6), hovered-row highlight (11a8b2db), restored category headers (e6277292). - SCM and Diff bundles ship by default; the now-redundant SCM Diff Gutter bundle was dropped. (
49aa933e) - 12 additional bundles ship by default alongside the existing core set. (
7e66f138) - Themes bundle embedded as a 4th mandatory bundle so a fresh install picks up themes without a network round-trip. (
5fbb7f6c) api.textmate.orgbundle manager replaced with git-URL-driven subscriptions. The legacyDefaultBundles.tbzextraction on first launch is gone. (4994d2ec,c438a993)- Ruby bundles ported to Ruby 2.6.10 (the system Ruby on macOS 26). Bundled Ruby 1.8 removed entirely from
bundle-support.tmbundle;TM_RUBYremains the override hook. Bundle-Support'splistgem submodule dropped (6243eef4); Java/Groovy/CVS bundles pinned at theirremove-legacy-rubybranches (4b609eac).
SCM
- In-process gutter diff. TextMate no longer relies on the SCM Diff Gutter bundle (or any external git invocation per gutter update). Vendored git's
xdiffand built a self-contained gutter-diff component. (d7f71a64,fd48a081,49fbfca0,7e47d36f) - Per-repository serial queue for
scm::shared_info_t, eliminating cross-repo lock contention on multi-repo workspaces. (7e5a2db1) - Half as many
gitsubprocesses per SCM update:collect_all_pathswas over-shelling and re-running probes inside untracked directories. (7d78a7ab,62f86db9) - Duplicate driver invocation removed in
SCMRepository. (ebe57b52) - Transient
.git/paths filtered from the SCM watcher so unrelated index updates don't trigger spurious status refreshes. (b1af6215) wait_for_statusrace linearized in the per-repo queue test. (e56d4f77)
Build system
- Cap'n Proto removed. Encoding classifier now uses ICU (
4e45d3b6); bundle index cache usesNSKeyedArchiver(0062e083);configure/bin/rave/CI no longer require it (9ab4f001). No Homebrew runtime dependencies remain in the shipped.app. - CxxTest emission wired up in
bin/raveso framework tests build alongside everything else. (04e6c4d8) .mmtest runners forced to--no-parallelon the main thread for fixtures that needNSThread.isMainThread. (602b3a24)- Ruby UTF-8 encoding fixed in build helpers under modern locales. (
aef4231a)
CI, signing, and release
- CI pipeline added: builds the app and runs framework test suites on every push. (#3 test infrastructure work spans
940a9157,598f1da0,0fde8c4e,e9fdde7c,fb734a9a,8966eb60,07a6d384,ef442001,d89fc688.) - Signed-and-notarized release pipeline. Tag a release by bumping
Changes.mdonmain. The workflow extracts the version, builds, signs every embedded Mach-O with Developer ID, re-signs the outer.appwith entitlements, notarizes vianotarytool, retriesstapleruntil the ticket propagates, runs Gatekeeper assessment, andgh release creates the asset. (940a9157,00c49bb6,75ca6517,b8f84419,4f01e338,20dcd938,c201fb6a) - Intel-only
CocoaDialog.appscrubbed from the embeddedbundle-supporttree (blocked notarization). (297d39de) - Release flow consolidation: tag-pushing workflow folded into
release.yml;RELEASE_PATrequirement dropped in favour of${{ github.token }}. (#2,9ab13123,1a2872a7,ba397573)
Repository
- Migrated from
dayglojesustotextmatelivesorg; bundle catalogue and submodule URLs updated; default branch is nowmain(wasmaster). (#1,d5f2ec39,e6677d1a) - README rewritten for the fork: requirements, fork-specific download/feedback, build instructions point at
textmatelives. (2f7c510d) CLAUDE.mdadded to capture fork-specific constraints for contributors. (8359a11a)
Versioning
- Version bumped to 2.1.0 so the auto-update channel sorts the fork above upstream's v2.0.23 and can't downgrade fork installs.
What's Changed
- Update fork references: textmatelives org + main branch by @dayglojesus in #1
- Consolidate auto-tag.yml + release.yml; drop PAT requirement by @dayglojesus in #2
- Catalogue resolver + first-launch bundle installer sheet by @dayglojesus in #3
- Surface CHANGELOG content in GitHub release notes by @dayglojesus in #4
- Bump CI/release runners to macos-26-arm64 by @dayglojesus in #6
- Release v2.1.0-undead by @dayglojesus in #5
- release.yml: re-seal nested bundles before signing outer .app by @dayglojesus in #7
New Contributors
- @dayglojesus made their first contribution in #1
Full Changelog: https://github.com/textmatelives/textmate/commits/v2.1.0-undead