Elyra v0.7.0: The Boring Update That Matters Most
There's no new command in this release. No new extension, no new theme, no new slash command. v0.7.0 is a dependency update. Four major version bumps, zero code changes required.
That's the point.
What changed
Package Before After TypeScript 5.9 6.0 marked 15.0 18.0 vitest 3.2 4.1 diff 8.0 9.0
Plus the TypeScript native compiler (tsgo) updated to latest, and the build target bumped from ES2022 to ES2024.
Why this matters
Dependency debt is invisible until it isn't. Every month you skip a major version, the upgrade gets harder. Breaking changes accumulate. The gap between what you're on and what the ecosystem expects widens. Eventually you're three majors behind and the upgrade is a project in itself.
Elyra stays current. When TypeScript 6 dropped, we upgraded the same week. Not because we needed a specific feature, but because the cost of upgrading now is zero and the cost of upgrading later is unknown.
TypeScript 6
The biggest bump. TypeScript 6 brings stricter type inference, new default behaviors, and deprecation of some legacy options. Elyra's codebase passed without a single type error.
The only change needed was bumping the build target from ES2022 to ES2024. The TUI's Unicode width calculation uses the regex v flag (for proper emoji and zero-width character detection), which requires ES2024. The target was overdue for a bump anyway — Node 20+ has supported ES2024 features since launch.
experimentalDecorators still works in TypeScript 6 (deprecated for 7). The web-ui package uses Lit decorators, so this buys time for the TC39 decorator migration.
marked 18
Three major versions in one jump (15 to 18). The markdown renderer is core infrastructure — every agent response flows through it. The changes across v16, v17, and v18 included a CJS build removal, list token restructuring, and stricter trailing whitespace handling.
Elyra's custom tokenizer (which handles strict strikethrough parsing) and the full token rendering pipeline worked without modification. The vendored marked.min.js used in HTML exports may need a future update, but the runtime renderer is clean.
vitest 4
The test runner upgrade. vitest 4 reworked its pool system, removed some deprecated config options, and changed mock naming. Elyra's test suites — 60+ test files across four packages — passed without changes. No deprecated config options were in use, no snapshots contained mock names.
diff 9
The simplest upgrade. Elyra uses diffLines() and diffWords() for file edit diffs and intra-line highlighting. Both functions are unchanged in v9. The breaking changes (patch formatting, ES5 removal) don't affect any code path in Elyra.
What made this painless
Four major bumps with zero code fixes isn't luck. It's a consequence of how the codebase is structured:
Minimal API surface usage. Elyra uses diff for two functions, not twenty. It uses marked through a clean rendering abstraction, not scattered inline calls. When you touch less of a library's API, you're less likely to hit breaking changes.
Current targets. The build was already on ES2022 with strict: true and Node16 module resolution. No legacy options, no deprecated patterns. TypeScript 6's new defaults matched what Elyra was already doing explicitly.
Good test coverage. Running npm run check after each upgrade immediately showed whether anything broke. The feedback loop between install new version and know if it works was under 30 seconds.
The xAI footnote
The only code change in this release was updating test model references. xAI removed grok-2 and grok-2-latest from their API between builds, so tests that referenced those models needed to point to grok-4.3 instead. This has happened three times now across releases — model APIs are more volatile than library APIs.
This is why Elyra's model list is auto-generated from live API data rather than hardcoded. The generated file changes; the code that uses it doesn't.