Changelog

What's new in JEditor

Every release, in plain English. Auto-updating clients pick up new versions in the background — students never miss a fix.

  1. v0.4.17Jun 24, 2026GitHub release

    Phase 5 (Go) Batch 4 — pointers, packages, goroutines

    • New'Pointers' — the explicit version of the value-vs-reference dance: `&` and `*` in expression vs type position, `&T{}` as the new-and-init idiom, nil checks at boundaries, the unaddressable-map-value rule, when to reach for pointer vs value.
    • NewPointer-vs-value side-by-side runner — pass the same struct two ways, hit Run on each, and watch the caller's data either change or stay put. The address-space diagram makes the indirection concrete.
    • New'Packages and project structure' — import paths and case-based visibility (no `public`/`private` keywords), the three standard project layouts (tiny / cmd+internal / cmd+internal+pkg), `init()` functions, circular-import diagnosis, naming conventions, the `_` and `.` import aliases.
    • NewPackage-layout explorer — three clickable project trees. Tap any directory and see its `package` clause, file contents, and a verdict on whether a sibling repo could import it. The `internal/` compiler enforcement clicks immediately.
    • New'Goroutines' opens Go's concurrency story — `go f()` syntax, the `main()` exits → all goroutines die surprise, `sync.WaitGroup`, the closure-capture trap (pre-Go-1.22), context cancellation, when goroutines pay back vs not.
    • NewGoroutine-race simulator — 100 workers all incrementing one counter, four implementations (unsafe `++` / sync.Mutex / atomic.AddInt32 / channel). The unsafe case randomly loses 5–25 updates per run; the others reliably reach 100. Race-detector output is shown verbatim.
  2. v0.4.16Jun 24, 2026GitHub release

    Phase 5 (Go) Batch 3 — interfaces, slices+maps, errors

    • New'Interfaces' — structural typing (no `implements`), the four stdlib interfaces every Go program uses (error / Stringer / Reader / Writer), type assertions + type switches, the typed-nil gotcha, and how value vs pointer receivers affect interface satisfaction.
    • NewInterface-satisfaction explorer — toggle methods on/off on a SendGrid and a FakeSender; the satisfaction matrix updates live and prints the exact `T does not implement I (method M has pointer receiver)` error Go would surface.
    • New'Slices and maps' — slice headers (ptr/len/cap), the shared-backing-array trap with concrete examples, append growth, removing elements, plus map declaration, the two-value read, randomised iteration order, and the standard sort-keys idiom.
    • NewSlice-anatomy diagram — live header + backing-array visualiser. Run append within cap, append that forces a realloc, slice + alias, copy for independence — watch the colours show which slice owns which cells and when an alias goes orphan.
    • New'Error handling the Go way' — the three options at every err site (handle / propagate / match), %w vs %v, sentinel errors vs custom typed errors vs wrapping, errors.Is + errors.As, the log-AND-return anti-pattern, defer + named returns for blanket annotation, panic vs error decision tree.
    • NewError-wrapping playground — build a 3-layer chain from the inside out, pick %w or %v at each layer, then run errors.Is + errors.As against the final error. The chain-breaking effect of a single %v is immediate.
  3. v0.4.15Jun 24, 2026GitHub release

    Phase 5 (Go) Batch 2 — functions, structs, methods

    • New'Functions and multiple return values' — Go's two-drawer (val + err) model with named returns, variadic args, defer, and the canonical `if err != nil { return err }` rhythm.
    • NewInteractive 5-call walkthrough — pick each call's outcome (OK / error / empty) and watch the function's error propagation light up the matching return lines and final value.
    • New'Structs' — declaring, four ways to construct, embedding (composition not inheritance), struct tags (json / db / validate), comparison and map keys, plus the slice-of-structs `range` mutation trap.
    • NewFive-tab anatomy view of the same User struct: Declare / Construct / Embed / Tags+JSON / Compare. JSON tag changes show the wire output side by side with the generated DB column SQL.
    • New'Methods and receivers' — value vs pointer receiver decision rule, method sets, methods on non-struct defined types, and a sneak peek at how method sets shape interface satisfaction.
    • NewReceiver picker example — pick value vs pointer for two methods on a Wallet struct, see the mutation either stick or vanish, watch the method set table flip, and see exactly when `var a Account = w` fails to compile.
  4. v0.4.14Jun 20, 2026GitHub release

    Phase 4 finished + Phase 5 (Go) opens

    • NewPhase 4 Backend now finishes: 'Connecting a separate frontend to Express' covers the two-process model + CORS + auth flow + dev-loop debugging.
    • NewPhase 4 Milestone: 'Standalone Express API' — a complete annotated blueprint of a blog API synthesising every Phase 4 concept (auth, validation, Prisma, middleware order, CORS, route table).
    • NewPhase 5 Go opens with 'Why Go and where it shines' — a fit matrix for when Go is the right tool and when it isn't.
    • New'Go setup, modules, and `go run`' — toolchain install, go.mod / go.sum, and three project layouts (single-file, medium, cmd/internal).
    • New'Variables, constants, and types' — the three declaration forms, all basic types, zero values, and the 'declared and not used' compile error every Go newcomer hits.
  5. v0.4.13Jun 20, 2026GitHub release

    Snip syntax highlighting

    • FixSnipped code PNGs now carry real syntax-highlighting colours — Monokai keywords in pink, strings in yellow, etc. — instead of the monochrome they came out as in v0.4.12.
    • PolishSwapped Monaco's colorize for Shiki's pre-bundled full grammar set so every token ships with an inline color style html-to-image captures cleanly. Wails' file:// scheme blocked Shiki's runtime grammar fetch, so we ship them inline.
    • PolishSnip-highlighter errors now surface as a loud alert instead of silently producing a monochrome image.
  6. v0.4.12Jun 19, 2026GitHub release

    Notes, snip-to-image, streaks, lesson search

    • NewNotes activity — floating + button on every lesson opens a composer. Notes appear in a new Activity Bar tab grouped by phase > chapter > lesson.
    • NewHighlight a phrase in a lesson → 'Save as note' pill anchors a note to that text. Clicking the note's quote later scrolls back to the original phrase with a flash highlight.
    • NewSnip code as a shareable PNG — 5 ray.so-grade frame themes (Aurora, Carbon, Minimal, Noir, Classic). Pick the default in Settings.
    • NewFloating Snip pill on Monaco selections + right-click → 'Snip selection as image' + Snip button on every MDX code block.
    • NewDaily learning streak in the status bar + chapter-completion trophy toasts.
    • NewCurriculum search (Ctrl+L) — fuzzy-search every lesson in every phase by MDX content.
    • NewGo Live button above the editor for HTML files — click to open the file in your default browser via Live Server in one shot.
    • NewEmmet for HTML / CSS / JSX (type `div.box>p` + Tab) + Monaco ghost-text inline suggestions.
    • NewCompact Learning sidebar — phase / chapter / lesson are now dropdowns in a thin header; the lesson reader takes the entire sidebar height.
    • NewRich MDX prose styling — gradient H1, accent rails on H2, vibrant strong/em/links/blockquote/tables/kbd.
    • NewOnline / offline manual toggle in the title bar: Auto-detect, Force Online, Work Offline.
    • FixNo more flashing git.exe console windows on Windows (every shell-out runs with hideWindow).
    • FixSettings + Profile pages get a 'Back to editor' button + Esc shortcut.
    • PolishASCII diagrams in lessons render in bright readable text instead of dim dark-on-dark.
  7. v0.4.11Jun 18, 2026GitHub release

    VSCode-style chrome with Learning as a first-class activity

    • NewNew Activity Bar on the left: Learning · Explorer · Search · Source Control · Extensions — plus Profile and Settings at the bottom.
    • NewMenu Bar on top: File / Edit / Selection / View / Go / Terminal / Help, every entry wired to a real action.
    • NewResizable Sidebar per activity, widths persisted per-activity in localStorage.
    • NewLearning sidebar — replaces the old phase top bar: phase chooser, prev/Next buttons, chapter outline tree, and the MDX lesson reader, with a draggable divider between outline and reader.
    • NewExtensions panel: lists built-ins (Live Server, PTY Terminal, TypeScript LSP, Snippet Library) alongside installed plugins — install / enable / disable / uninstall.
    • NewNew keyboard shortcuts: Ctrl+1 Learning, Ctrl+Shift+E/F/G/X for Explorer/Search/Git/Extensions, Ctrl+J toggle bottom panel, Ctrl+` open terminal, Ctrl+, Settings.
    • BreakingOld phase top bar (Chapter / Lesson dropdowns + dot row + Files/Search/Terminal toggles) removed — its functions are now spread across the Activity Bar, Menu Bar, and Learning sidebar.
  8. v0.4.10Jun 17, 2026GitHub release

    Pro polish — status bar, Cmd+P, workspace persistence

    • NewStatus bar at the bottom: git branch with ahead/behind counts, workspace name, cursor line:col, language, file, unsaved-file count.
    • NewCmd+P quick-open: fuzzy-search every file in the workspace and jump straight to it. Type 'app.tsx' to find apps/web/app.tsx, etc.
    • NewWorkspace persistence: launching the app re-opens your last folder and every open tab in its previous order. Pinned tabs survive 'Close Others' and 'Close All'.
    • NewOpen-at-line: clicking a search result scrolls the editor straight to the matching line.
    • NewTab right-click menu: close / close others / close to the right / close all / pin / unpin / copy path / reveal in explorer. Middle-click any tab to close it.
    • NewBreadcrumbs above the editor showing workspace > folder > file. Click the workspace name to reveal the file tree.
    • NewRecent folders in the command palette — switch workspaces without re-using the folder picker every time.
  9. v0.4.9Jun 17, 2026GitHub release

    Workspace search + Git source control

    • NewWorkspace-wide search across the open folder — regex, case-sensitive, whole-word toggles, include/exclude globs, results grouped by file.
    • NewReplace All — runs per-file via atomic temp-write so a mid-pass failure can't corrupt the workspace.
    • NewGit panel writes: stage / unstage / discard per file, commit composer (Ctrl+Enter to commit), Push, Pull, branch indicator with ahead/behind counts.
    • NewNon-repo folders show an 'Initialise a git repo here' button — no need to drop into the terminal for git init.
    • PolishSide panel is now exclusive — Files and Search are mutually exclusive (they live in the same 260px column).
  10. v0.4.8Jun 17, 2026GitHub release

    Full PTY terminal + plugin scaffolding

    • NewReal terminal — the Terminal tab is now xterm.js wired to a PTY (ConPTY on Windows, openpty on Unix). Ctrl+C signals, ncurses apps (vim, top), arrow-key history, the works.
    • NewPlugin system — install single-file JS plugins from a URL via Settings. The JEditor global exposes commands, events (fileOpen / fileSaved), workspace.openFile, and UI toasts.
    • NewPlugin manager in Settings: install, enable / disable, uninstall, see id + version + description.
    • PolishPlugins are deliberately unsandboxed — the Settings page is explicit: 'treat them like any other code you'd run on your machine'.
    • BreakingOld line-based Terminal pane removed (the new PTY terminal replaces it).
  11. v0.4.7Jun 17, 2026GitHub release

    Language services, snippets, and Git

    • NewInline TypeScript / JavaScript diagnostics, hover docs, and autocomplete — Monaco's bundled TS worker is now wired up with JSX support and sensible defaults for student code.
    • NewCurated snippet library for HTML / CSS / JS / TS / React / Go / Python. Type 'html5' + Tab for the boilerplate, 'flex' for a centered flex row, 'useState' for the React hook pair, 'errcheck' for the Go pattern.
    • NewGit tab in the bottom panel: lists modified / added / deleted / untracked files with status badges, click to open, polls every 4 seconds.
    • NewMonaco diff gutter — colored line strips for added (green), modified (amber), and deleted (red) lines, just like VSCode.
    • PolishSilenced 'cannot find module' errors for student code so red squiggles only mean something the student actually wrote wrong.
  12. v0.4.6Jun 17, 2026GitHub release

    Integrated terminal + Live Server

    • NewTerminal button in the top bar opens a bottom panel — type any shell command (pnpm install, go run ., git status), see streamed output, hit Stop to cancel.
    • NewLive Server tab in the same panel: click Go Live and the open folder is served from a local 127.0.0.1 port with auto-reload on every save (HTML / CSS / JS).
    • NewQuick-command buttons in the terminal adapt to the current phase (pnpm dev shows for Backend, ls for Frontend).
    • NewFile tree keyboard shortcuts: F2 to rename, Delete to remove, Ctrl+X/C/V/D for cut/copy/paste/duplicate.
    • NewPhase-aware editor defaults — the first time you visit Backend phase, tab size soft-switches to 4.
  13. v0.4.5Jun 17, 2026GitHub release

    VSCode-style file tree

    • NewDrag-and-drop files between folders.
    • NewRight-click a node for Cut / Copy / Paste / Duplicate / Copy Path / Reveal in File Explorer / Rename / Delete.
    • PolishCut nodes dim to half-opacity until you paste them.
    • FixPaste falls back to a 'copy of …' name when the destination already has one, so it never silently overwrites.
  14. v0.4.4Jun 17, 2026GitHub release

    Editor polish — themes, code blocks, file icons

    • NewNew editor themes — Monokai Pro (default), Dracula, One Dark, GitHub Light. Switch from Settings.
    • NewCode snippets in lessons now have syntax highlighting + a Copy button.
    • NewType-aware coloured icons in the file tree (HTML / CSS / JS / TS / JSON / MD / Go / Python / Rust / shell / images).
    • NewManual Check-for-Updates button + Light/Dark toggle + clickable Online indicator in the title bar.
    • NewSettings page expanded — font size, tab size, word wrap, minimap, auto-save (debounced) + delay.
    • FixDropdown background was transparent due to a missing Tailwind alias — fixed.
    • FixOpen-in-Editor button now opens the starter file in a tab + reveals the Files panel + has readable contrast.
  15. v0.4.3Jun 16, 2026GitHub release

    Boot.dev-style learning shell

    • NewNew Phase Picker landing screen with per-phase progress bars (Web Frontend, Backend, …).
    • NewFocused two-pane lesson view: lesson content on the left, editor on the right, with a draggable splitter.
    • NewTop bar with Chapter + Lesson dropdowns, dot row for chapter progress, Next button.
    • NewFiles panel collapsed by default — slides in only when toggled.
    • NewIn-app New File / New Folder / Rename / Delete actually work now (the old folder-plus button used to open the OS folder picker).
    • BreakingThe legacy three-pane curriculum-sidebar layout has been removed.
  16. v0.4.2Jun 16, 2026GitHub release

    Login + forgot-password fixes

    • FixDesktop login redirect bug fixed (the client was reading the wrong token shape from the API).
    • NewForgot-password / reset-password flow added end-to-end with 6-digit OTP via Resend.
    • FixSentinel WAF no longer false-positives on legitimate auth payloads (was 403'ing valid signups).
    • FixCORS now allows the Idempotency-Key header so POSTs no longer dead-end at the preflight.
    • NewPhase 4 (Backend) lessons batches 1–4 added.
  17. v0.4.1Jun 15, 2026GitHub release

    Auth route limits + first-launch hardening

    • FixBumped auth-route rate limits from 5/3 to 30/20 requests per 15 minutes.
    • FixuseSync / useProgress / useCurriculum / useWorkspace now noop-stub when their providers aren't mounted (no more black screen on first install).
  18. v0.4.0Jun 14, 2026GitHub release

    Split-screen auth + OTP verification

    • NewAuth screens redesigned as split-screen with an editor mockup on the left.
    • New6-digit OTP email verification on signup via Resend.
    • NewFull Phase 3 curriculum (21 lessons across 7 batches).

Want to be first?

Run the desktop app — it polls the update endpoint on launch and shows a banner the moment a newer version is available. Click install + restart and you're current.

Download JEditor