Roadmap & changelog
Planned. In progress. Shipped.
Three phases of work, in that order. The first two come from the public ROADMAP.md in the main repo — they change as tickets advance. The third is the actual release history pulled from CHANGELOG.md at every build.
- 24 planned
- 8 in progress
- 3 stable releases
Phase 1
Planned
Spec'd, scoped, and waiting in line. Each ticket has acceptance criteria written against the codebase before any work starts.
Editor & runtime
8- Planned
Explicit JS/TS runtime modes
Per-tab runtime selector: worker scratchpad / desktop Node / browser preview.
- Planned
Scratchpad / REPL excellence
Smart auto-run + multi-line editor history + quick inspect.
- Planned
Snippet Lab + algorithm practice
Tagged snippet collections + "compare two snippets" + saved assertions.
- Planned
Multi-file playgrounds + starter galleries
Multi-file workspaces, static assets, per-language starter templates.
- Planned
Package / dependency management
Language-aware package install UI for JS/TS (desktop) and Python (Pyodide).
- Planned
Local AI code assistant
Desktop-only local-model assistant focused on algorithms + cross-language generation.
- Planned
Marketing website + docs hub
Separate marketing site at linguacode.dev with docs/download/pricing.
- Planned
Sharing, collaboration, publish flows
Phase A: share-by-link, publish-as-static, snippet export.
Languages
1- Planned
Language intelligence beyond Monaco
Adapter for richer diagnostics/completion/hover/signature help per language.
Execution & tooling
4- Planned
Package management
Superseded in scope by `RL-025`. Keep open for reference until `RL-025` ships Slice A.
- Planned
Notebook / cell-based execution
New notebook view alongside the editor with per-cell output.
- Planned
Inline data visualization + rich output
Detect structured output (tables, images, plots) and render richly.
- Planned
Integrated terminal (desktop)
Embed xterm.js + node-pty panel in the desktop build.
Developer utilities
1- Planned
DevUtils-class productivity layer
Smart input auto-detection, recent-inputs history, cross-tool piping.
Launch operations
1- Planned
Local plugin manifest hardening
Enforce manifest schema, runtime allowlist, compatibility validation, diagnostics, and no arbitrary plugin code.
Personalization & polish
2- Planned
Static site export + publish
Export JS/TS/HTML projects as self-contained static ZIP; one-click publish to GitHub Pages.
- Planned
Gamification + achievements
Achievement catalog, per-user progress, streaks.
Documentation
1- Planned
README + docs information architecture cleanup
Split README into concise entry point plus indexed development, release, security, privacy, and licensing docs.
Security & quality
6- Planned
Performance budgets + runtime observability
Add bundle/runtime budgets, cold-start metrics, worker lifecycle measurements, and CI regression reporting.
- Planned
Watcher reliability + filesystem edge cases
Validate watcher lifecycle, bursts, renames, permissions, symlinks, path casing, and platform limitations.
- Planned
Accessibility QA hardening
Add automated and manual accessibility checks for shell, overlays, file tree, editor, results, and utilities.
- Planned
User profile backup/export/restore
Versioned profile export/import for safe user-owned settings, snippets, shortcuts, themes, layout, and env vars.
- Planned
Error boundaries + recovery UX
Add shell error boundaries, safe-mode boot, reset flows, redacted error export, and support recovery docs.
- Planned
License/update server observability + runbooks
Add metrics, redacted logs, alerts, and incident runbooks for licensing, recovery, webhooks, and update feeds.
Phase 2
In progress
Slices already shipped, more to come. Whatever's listed here has working code in the current binary — it's just not a finished story yet.
Launch
1- In progress
License-key infrastructure
Ed25519 verifier + Settings section + main-side IPC bridge with device id Remaining: Polar webhook + email delivery (now lives under `RL-061`).
Editor & runtime
1- In progress
Vite major upgrade
ADR landed; upgrade itself blocked on four upstream peer-range checks from the ADR.
Languages
2- In progress
Debugger MVP
ADR landed; JS/TS first implementation slice still pending.
- In progress
Expand languages toward 15+
Ruby, Java, Kotlin, Scala, Swift, C, C++ open in view/lint mode. Runnable tiers pending per-lang.
Execution & tooling
1- In progress
Env vars panel
Slice A/B/C shipped + Slice D for Go/Rust/Python. Remaining: JS/TS desktop runner env threading.
Developer utilities
1- In progress
Specialty utilities — QR + inspector
String Inspector shipped. QR code generate shipped on 2026-04-23 (PNG + download + L/M/Q/H levels). Remaining: QR code read mode (camera vs upload decision pending).
Launch operations
1- In progress
Privacy-respecting telemetry
First-run consent + event allowlist + overlay.opened / runner.executed / feature.blocked wired. Remaining: event export pipeline.
Personalization & polish
1- In progress
Guided lessons + app galleries
Built-in guided tour + seeded lesson drafts in `docs/lessons`. Remaining: in-app lesson browser + progression.
Brewing
Since v0.2.3
User-visible commits sitting on main that haven't been bundled into a stable release yet. Pulled straight from git log — no marketing edit in the middle.
- New
harden trusted native execution
- New
RL-078 — parent-owned execution timeouts + resource limits
- New
RL-077 Slice 2 — close capability filesystem IPC sandbox
- New
add filesystem capability registry
- New
close language-pack UI migration
- New
ship Vim mode integration
- New
add execution history comparison
- New
add command palette replay for history entries
- New
add execution snapshots for future replay
- New
refresh overlay surfaces
Plus 13 infrastructure / docs / test commits hidden from this view. Browse the full log on GitHub.
Phase 3
Shipped
Stable releases on the public channel. Pulled from CHANGELOG.md at every build — never typed by hand.
-
v0.2.1
Added
- URL Parser (Developer Utilities): A new panel breaks any URL into scheme, origin, user, password, host, port, path, search, and fragment. Each component renders on its own card with a copy button, and the query string shows as a one-row-per-parameter table that preserves duplicate keys. The password cell stays masked until you explicitly reveal it.
- String Case Converter (Developer Utilities): Type any phrase or identifier and see seven casings live: camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Sentence case, and Title Case. The tokenizer understands acronyms (
HTTPRequest→HTTP Request), letter-digit boundaries, and leaves CJK, emoji, and accented characters intact. - HTML Entity Encode / Decode (Developer Utilities): A new panel with four modes — Encode (minimal), Encode (named), Encode (numeric), and Decode. Named encoding covers Latin-1 Supplement plus common punctuation / symbol entities; codepoints outside the named table fall back to decimal numeric. Decode resolves named, decimal, and hex references and surfaces a small hint when any reference could not be resolved.
- String Inspector (Developer Utilities): Paste any text to see its UTF-16 units, approximate graphemes, and UTF-8 byte length alongside a per-codepoint table that labels every character (printable, whitespace, control, invisible, BiDi). Warning cards call out zero-width characters, BiDi overrides, mixed-script words, and common Latin / Cyrillic homoglyphs — the usual suspects when a pasted string behaves mysteriously.
- Diff Viewer granularity: The Diff Viewer now supports line-level, word-level, and character-level comparison via a selector at the top of the result. Word and character modes render inline so small edits pop visually, while the line summary keeps the familiar added / removed / unchanged counts.
- More copy buttons across Developer Utilities: The UUID Generator, Timestamp Converter, JSON Formatter, and JWT Debugger now ship a dedicated copy affordance on every result — each generated UUID row, the four timestamp cards (Unix seconds, Unix milliseconds, ISO 8601, local time), the current JSON input, and the decoded JWT header and payload.
- Backslash Escape / Unescape (Developer Utilities): Convert pasted strings for JavaScript, JSON, Python, or SQL-MySQL contexts, then unescape them back with clear inline errors when a sequence is incomplete or malformed.
- Random String Generator (Developer Utilities): Generate one or many secure random strings with length, count, character-class toggles, and an option to exclude ambiguous characters such as
0,O,1, andl. - Lorem Ipsum Generator (Developer Utilities): Generate placeholder copy as words, sentences, or paragraphs, with an optional classic opening and natural sentence rhythm for mockups, layout tests, and sample content.
- Base64 Image Encode / Decode (Developer Utilities): Drop an image to create a data-URI, or paste a data-URI to preview it with MIME and size metadata. Oversized pasted payloads are rejected before preview so the app stays responsive.
- JWT Debugger algorithm coverage: Verify and sign JWTs across the full HS, RS, ES, and PS families, including RS384 and RS512, without leaving the local renderer.
- Beautify / Minify expansion (Developer Utilities): The panel now covers JSON, JavaScript, HTML, CSS, SCSS, LESS, and XML. JavaScript minify uses a real ECMAScript minifier, while markup and stylesheet modes preserve raw text, strings, URLs, CDATA, and other sensitive content.
- SVG to CSS converter (Developer Utilities): Paste SVG markup and copy either a Base64 or URL-encoded data-URI plus a ready-to-use CSS
background-imageblock, with detected size hints when the SVG exposes safe dimensions. - Cron Parser (Developer Utilities): Explain cron expressions in plain language and list the next scheduled run times from your machine clock, with English and Spanish descriptions plus a configurable upcoming-runs count.
- Hash Generator closeout (Developer Utilities): Adds MD5 via a lazy-loaded spark-md5 chunk, SHA-384, SHA-512, HMAC over the full SHA family, plus a drag-drop file input so local payloads up to 50 MB can be hashed without ever leaving the device.
- HTML to JSX converter (Developer Utilities): Paste HTML markup and copy valid JSX with React-compatible attribute names, self-closing void elements, inline styles translated to object literals, HTML comments converted to JSX comments, and multi-root inputs optionally wrapped in a fragment.
- cURL to Code converter (Developer Utilities): Paste common cURL commands and generate equivalent code for fetch (browser), undici (Node), Python requests, or Go net/http. Headers, methods, inline bodies, basic auth, and cookies all carry over; file-backed bodies get a clear error, and unknown flags surface as inline warnings instead of hard failures.
- YAML and JSON converter (Developer Utilities): Convert between YAML and JSON with a 2 / 4-space indent toggle. A diagnostic flags when YAML comments are dropped at the JSON boundary; quoted-scalar
#characters are correctly preserved. - JSON and CSV converter (Developer Utilities): RFC 4180-compliant CSV ↔ JSON-array converter with configurable delimiter (comma, tab, semicolon, pipe), header-row toggle, sparse-row support, and full quoted-field handling for embedded delimiters and newlines.
- Markdown Preview (Developer Utilities): Render Markdown to a sanitized HTML preview locally — DOMPurify backstops the sanitization and remote
<img src="…">attributes are stripped before rendering so nothing leaves the renderer. - SQL Formatter (Developer Utilities): Format SQL with ANSI standard, PostgreSQL, or MySQL dialect rules. Configurable indent (2 / 4 spaces) and keyword case (preserve / UPPERCASE / lowercase).
-
v0.2.0
Added
- License management: A new License section in Settings lets you paste a Lingua token to unlock your plan. The current tier is visible next to the input, and a FREE / PRO pill in the toolbar shows your active plan at a glance. Click the pill to jump straight to the License section.
- Environment variables: A new Settings section where you can define environment variables at the workspace or per-project level. Values stay on your machine and flow to desktop runners when you execute a file.
- Expanded language catalog: Ruby, Java, Kotlin, Scala, Swift, C, and C++ files now open with proper syntax highlighting, file-extension detection, and a clear indicator in the file tree when they aren't runnable yet.
- Privacy controls: A first-launch prompt asks whether you want to share anonymous usage signals before anything leaves your machine, and Settings → Privacy lets you change your mind at any time. Telemetry and crash reporting are off until you opt in, and never include your code or file paths.
- About and What's New: Settings now ships a dedicated About panel with version and release links, plus a What's New overlay that surfaces these release notes without leaving the app.
- Editable keyboard shortcuts: Rebind any built-in shortcut from the Keyboard Shortcuts overlay. Conflicts are detected and refused with a helpful notice, per-row and global reset restore the defaults, and your changes persist across sessions. Escape stays reserved so you can always close an overlay.
- Keyboard shortcut presets: Switch between "Default (Lingua)", "Sublime Text-inspired", and "Classic IDE (JetBrains-style)" bundles in one click. Any manual edit afterwards flips the selector back to Default so the UI always reflects the truth.
- Export and import your keymap: Save your personalised shortcuts to a JSON file or import one from another install. The file is validated for shape, version, and conflict-free combos before it is applied.
- Theme packs: Settings → Appearance adds a theme pack selector. Pick "Solarized Daylight" for warm paper light mode, "Nord Night" for a calm blue-grey dark mode, or stay on the Lingua default. A pack swaps appearance, typography, and layout in one move.
- Guided tour on-startup toggle: Every step of the guided tour now has a "Don't show this tour on startup" checkbox. A matching switch lives in Settings → About for anyone who wants to replay or silence the tour on demand.
- Execution history everywhere: A new clock icon in the console toolbar opens a popover with your most recent runs — language, duration, and relative time — and the Command Palette surfaces the same list so you can re-run a recent file from the keyboard. Clear the history any time.
- Number Base Converter (Developer Utilities): Convert integers between binary, octal, decimal, hexadecimal, or any custom base from 2 to 36.
0x,0o, and0bprefixes are honoured and underscores work as digit separators. - UUID v7 and ULID (Developer Utilities): Generate modern time-ordered identifiers alongside the classic UUID v4. A new decoder surfaces the embedded timestamp from any UUID v7 or ULID you paste.
- Beautify / Minify panel (Developer Utilities): Pretty-print or compact JSON and JavaScript side-by-side. JSON round-trips through a parse and restringify; JavaScript gets an honest whitespace-only minifier with a clearly labelled hint.
- Quick copy in Developer Utilities: Every result field in Developer Utilities — hex/RGB/HSL colors, hashes, Base64 output, URL encode/decode, Beautify / Minify results — now has a small copy icon that writes the value to the clipboard with a brief confirmation.
- Format on save for Python: Python files now run through ruff (falling back to black) when format-on-save is enabled, alongside the existing support for JavaScript, TypeScript, JSON, CSS, Go, and Rust.
- Support for infrastructure files:
Dockerfile,Containerfile,Makefile,.gitignore,.dockerignore,.npmignore,.editorconfig, and shell scripts (.sh,.bash,.zsh, plus common shell dotfiles) now open with proper syntax highlighting. - Inline validators with friendly diagnostics: Running a JSON, YAML,
.env, CSV,.editorconfig, Dockerfile, Makefile,.gitignore, or shell script file now surfaces lightweight warnings inline — duplicate.gitignorepatterns, space-indented Makefile recipes, missing DockerfileFROMor deprecatedMAINTAINER, unknown EditorConfig keys, missing shebangs in shell scripts, and more.
Changed
- Dark / Light toggle: Picking a shell theme always takes effect now. Previously the "match shell to editor theme" option could quietly override your choice.
- Clearer license errors: Invalid tokens surface a tier-specific explanation — "malformed token", "signature does not match", "expired", "clock is off", and so on — rather than a generic fallback.
- Color Converter picker: The colour picker row now reads as a proper control, with a Palette icon and a hint line instead of an anonymous square.
Fixed
- Shortcut row spacing: Keyboard Shortcuts rows keep clear breathing room between the combo and the Edit / Reset buttons in every language, including Spanish.
-
v0.1.0
Added
- Desktop code runner foundation: Electron Forge + Vite + React 19 shell with Monaco editor, project explorer, command palette, quick open, snippets, settings, and a structured console panel.
- Language execution backends: JavaScript, TypeScript, Go, Python, and Rust execution paths, with browser support for JS/TS/Python and desktop-only native toolchain flows for Go/Rust.
- Inline execution feedback: Result panel, per-line inline output, runtime markers, execution timing, and magic-comment support for dynamic languages.
- Project and file workflows: Open folder, recent projects, loose-file editing, save/save-as, rename, delete, duplicate tab, and session restore support.
- Monaco authoring support: Runtime-aligned JavaScript/TypeScript diagnostics, file-extension language detection, and immediate completion providers for Go, Python, Rust, and Lua.
- Localization and docs: English/Spanish UI, i18n validation tooling, architecture docs, renderer reference docs, and contributor guidance for the renderer surface.
- Packaging and update infrastructure: Desktop updater foundation, packaging metadata hardening, protocol registration, release checksums, and manual GitHub release workflows.
Changed
- Renderer architecture: Split oversized modules into focused feature folders for editor, file tree, command palette, settings, and project tree helpers.
- Shell behavior: Responsive sidebar drawer, persistent resizable layouts, safer overlays over Electron drag regions, and cleaner settings/about organization.
- Release and delivery model: CI now validates build quality; publish/deploy operations are explicitly manual.
Fixed
- Restored Go desktop execution after IPC regressions.
- Hardened file-system IPC, rename handling, and trusted renderer navigation.
- Fixed Monaco initialization crashes and synchronized diagnostics with execution output.
- Corrected theme bootstrap to prevent shell flash on load.
- Fixed Electron overlay interaction issues caused by draggable titlebar regions.
Documentation
- Added architecture guidance for project lifecycle, file-system IPC, and renderer ownership boundaries.
- Added release, CI, and renderer maintenance documentation for future contributors.