Releases: GalaxyRuler/lisan-studio
Release list
Lisan Studio v1.0.0-rc1 — V3 Git & Multi-Root
V3 milestone: Git source-control UI + Multi-root workspaces
What's new
- Git status panel — file-level dirty state, stage/unstage
- Inline diff viewer — unified diff per file
- Commit workflow — message panel, commit, push, pull, fetch
- Branch management — create, switch, merge, delete via picker
- History log panel — full commit history
- Blame gutter — per-line annotation in EditorSurface
- Historical commit diff — diff any commit against its parent
- Multi-root workspace — add/remove roots, per-root tree browsing
Backend
- libgit2 via CMake FetchContent (ADR-0016)
Signing
Unsigned (ADR-0010 option b). See SmartScreen guidance.
CI
GHA self-hosted run 27020520242 — msi-install + msi-upgrade passed.
V2 baseline: v0.5.0-beta | V3 plan: plans/lisan-studio/v3/ in command-center vault
v0.5.0-beta — V2 public release (LSP, debugger, terminal)
Lisan Studio v0.5.0-beta — V2 milestone release. First full public-use release with LSP, debugger, and integrated terminal.
What's new in V2
Language intelligence (LSP)
- Code completion and hover tooltips powered by a pylsp translation shim for apython
- Go-to-definition (Ctrl+Click), find-references (Shift+F12), and rename refactor (F2)
- Semantic highlighting, document outline, and workspace symbol search (Ctrl+T)
Debugger
- Full debugpy DAP integration: set breakpoints in the gutter, step over/into/out (F10/F11/Shift+F11), continue (F5)
- Locals panel, watch expressions (right-click → Add to Watch), and call-stack panel with frame switching
Integrated terminal
- Windows ConPTY-backed terminal panel with cmd, PowerShell, and WSL bash
- Multi-shell picker persists choice per workspace; replaces the V1 placeholder command
Multi-cursor extensions (completes V1.5 keystone)
- Ctrl+Z/Y, Tab/Shift+Tab, and Arabic IME composition now apply across all secondary cursors
- Column/rectangle selection via Alt+drag (shipped in v0.2.0-beta) unchanged
Editor polish
- 5-second incremental autosave for untitled drafts (no longer lost between transitions)
- Canonical command-id migration (dotted camelCase; user shortcut bindings migrate automatically)
Known limitations
- MSI is unsigned — SmartScreen shows "Windows protected your PC" on first launch. Click More info then Run anyway. See docs/INSTALLATION.md. (ADR-0010 revisit 2026-06-05: unsigned accepted for this release.)
- LSP features require the apython runtime bundled in the MSI. Externally installed Python environments are not supported in v0.5.0.
Installation and upgrade
- Fresh install: double-click the MSI.
- Upgrade from any prior v0.1.x or v0.2.x beta: the MSI upgrades automatically via Windows Installer MajorUpgrade.
- Upgrade chain v0.1.0 → v0.5.0 verified by GHA run 27014307173 (msi-install + msi-upgrade both success).
Evidence: GHA run 27014307173 on 125a6f6 (pre-merge head).
MSI SHA256: 8209d4836a863794344258cf108647b06625293c401e4e9cbddd6d3b72da5057
v0.2.0-beta (V1.5 milestone close)
V1.5 milestone-close release. The V1.5 roadmap is archived at docs/ROADMAP-V1.5-archive.md; V2 planning continues in docs/ROADMAP-V2.md.
Added
- Column / rectangle selection via Alt+drag. Hold Alt and left-drag in the editor to generate one cursor per line in the rectangle, each with a selection (or zero-width cursor when columns coincide) spanning the rectangle's column range. Reuses all of v0.1.3-beta's multi-cursor machinery — atomic edit blocks, soft/hard caps, Esc collapse — so typing, Backspace, Delete, arrow movement, and Return apply across the generated cursors just like Ctrl+Click or Ctrl+D cursors.
V1.5 milestone summary (informational)
V1.5 shipped across three cumulative release tracks during May 2026:
- v0.1.2-beta (2026-05-24): search/replace project-scan cap raised from 500 to 5000 files; release-evidence trust-audit instrumentation; perf baseline established; SmartScreen click-path documented; ADR-0010 defers MSI code signing.
- v0.1.3-beta (2026-05-24): multi-cursor primary+secondary editing keystone (Ctrl+Click, Ctrl+Alt+Up/Down, Ctrl+D, Ctrl+Shift+L, Esc, soft cap 100 / hard cap 1000, single-undo invariant).
- v0.2.0-beta (2026-05-26, this release): Alt+drag column selection closes the V1.5 multi-cursor keystone; milestone closed.
Known v0.2.0-beta limitations
- Alt+drag column selection has no live preview rectangle during the drag. The generated cursors appear on mouse release. Live preview is deferred to V2.
- Alt+drag column selection operates on logical lines only. If the editor is showing soft-wrapped lines, the drag rectangle treats each logical line as a single row rather than each wrapped visual row. Soft-wrap-as-visual-row column selection is deferred to V2.
Evidence: GitHub Actions run 26474081761 (msi-install + msi-upgrade both success on fc8787a).
MSI SHA256: 867dfc745d8f432504675ba5ce9f508d6322860aaf387e6952837bfcd944e0ca
v0.1.3-beta
Multi-cursor editing: hold Ctrl and click to add a cursor at the click position; Ctrl+Alt+Up / Ctrl+Alt+Down add cursors above/below the primary cursor at the same column; Ctrl+D adds a cursor at the next exact match of the current selection; Ctrl+Shift+L converts every find-match into a cursor; Esc collapses to a single cursor. Typing, Backspace, Delete, arrow movement, and Return apply to all cursors atomically with a single undo step. Soft cap notice at 100 simultaneous cursors; hard cap at 1000. Five new commands (cursor.addAbove, cursor.addBelow, cursor.addAtNextMatch, cursor.selectAllMatches, cursor.collapseToSingle) are in the command palette and Edit menu, rebindable via shortcuts JSON.
Known v0.1.3-beta limitations: IME composition refused while secondary cursors are active (press Esc to collapse first); column / rectangle selection deferred; Ctrl+Z, Ctrl+Y, Tab indent currently apply only to the primary cursor.
Evidence: GitHub Actions run 26371806343 (msi-install + msi-upgrade both success on cec085a).
MSI SHA256: df01b5488233a1898c8bf709624d957228eea9fd52bcf61a8b120047c073efda
v0.1.2-beta
v0.1.2-beta (2026-05-24)
- Search/replace project-wide scan cap raised from 500 to 5000 files. The per-file 1 MB ceiling and the per-call result limit are unchanged. Truncation status-bar message now dynamically reports the active cap.
Lisan Studio 0.1.1 Beta Notes
Fixed (data-safety regressions in 0.1.0-beta)
- Project-wide replace now preserves leading whitespace and per-file line endings. (was: stripped indentation, mixed CRLF/LF on apply)
- Editor save preserves the loaded file's line-ending style. (was: silently converted CRLF to LF)
- MSI install registers as a single entry in HKLM\WOW6432Node\Uninstall instead of a dual HKCU+HKLM registration. (was: two entries per install, polluted Programs and Features)
- Build identifier (git short SHA or ISO UTC timestamp) is captured at HKCU\Software\LisanStudio\BuildId for support diagnostics.
Added
- Document model: every open file is tracked by a real DocumentRegistry with version-checked text edits, external file change polling, and a Reload/Keep/Compare prompt when files change externally.
- Workspace trust: grant + revoke commands with an audit trail at .lisan-workspace/trust-audit.jsonl, surfaced in the diagnostics bundle.
- Editor torture coverage for V1.5 gate decisions: 100k-line files, undo/redo storms, find/replace storms, IME composition cycles, soft-wrap on mixed RTL/LTR.
- Search/replace cap notice: "تم اقتطاع نتائج البحث عند 500 ملف" appears in status bar when the 500-file scan cap fires.
- Command-registry sweep: every visible command is now generatively asserted to have id/label/category/trigger/uniqueness/shortcut/no-BiDi-controls.
Changed
- MSI test pipeline migrated to GitHub Actions (.github/workflows/msi-tests.yml). Per-step logs replace the prior custom Hyper-V harness's sparse checkpoint files.
- Editor enforces CRLF on save for new untitled buffers (Windows-default); Mixed-line-ending files are normalized to their dominant style on first save.
- MainWindow extracted into RuntimeOrchestrator, EditorTabsController, ProjectTreeController, BottomPanelController, CommandPaletteController, WorkbenchTheme. Internal refactor - no user-facing behavior change beyond the per-feature fixes above.
Removed
- Legacy Hyper-V harness entry points (qa/vm/*, the wrapper test scripts). MSI test orchestration now lives in the GHA workflow exclusively.
- AllowSameVersionUpgrades on the WiX MajorUpgrade. Each beta now bumps a patch version; same-version replacement is no longer the upgrade cadence.
Known limitations (deferred to V1.5+ / V2)
- No multi-cursor or column selection. (gated on QPlainTextEdit cost-model evidence)
- Terminal panel boundary exists but real shell execution is not yet wired. (gated on stronger trust model)
- No language-server protocol features (completion, diagnostics from unsaved buffers, go-to-definition). (V2 scope)
- No debugger. (V2 scope)
- No Git source-control UI. (V3 scope)
- Search and project-replace scan up to the first 500 files; larger projects truncate with a status-bar notice.
Upgrade from 0.1.0-beta
- Install LisanStudio-0.1.1-beta.msi normally. Windows Installer's MajorUpgrade removes the prior install and installs the new one in a single transaction.
- User settings under HKCU\Software\LisanStudio survive the upgrade.
- The verified upgrade path is the one tested in GHA run 26331615773.
Lisan Studio 0.1.0 Beta Notes
Included
- Native Qt 6 desktop shell.
- Lisan Studio app branding and bundled logo resource.
- Premium dark visual system based on the accepted Claude design.
- Custom RTL Claude-design single top shell with integrated menus, primary run action, and unified command/search field.
- Integrated dropdown menus for file, edit, view, tools, and help.
- Primary run and command/search are single top-bar entry points to avoid duplicate run/search surfaces.
- No inherited
QMenuBarorQToolBarshell surface. - RTL editor tabs, project sidebar, bottom panel tabs, and status bar.
- Arabic-first editor surface based on
QPlainTextEdit. - Minimal
.apysyntax highlighting. - Hidden Unicode BiDi control detection.
- Project folder tree.
- Editor tabs for multiple open documents.
- Bottom panel tabs for terminal, output, problems, search results, and debug.
- Project text search with clickable file/line result rows.
- Problems panel entries for hidden BiDi controls and runtime failures.
- Run current
.apythrough bundled runtime with live output, exit code, elapsed time, and cancel action. - RTL settings dialog with editor font controls, runtime diagnostics, and recent projects.
- Runtime diagnostics for bundled Python,
lughat-althuban, run, lint, and format availability. - Lisan Studio application metadata, executable name, install folder, and shortcut targets.
- Packaged Qt, Python, and
lughat-althubanlicense payloads. - WiX MSI packaging path for
LisanStudio-0.1.0-beta.msi. - MSI install/uninstall smoke script for private beta validation.
- Release evidence script for checksums, validation log, known issues, and screenshot capture.
- Manual beta checklist script for recording the installed-app handoff pass as a professionally formatted Word review packet, with Markdown and JSON traceability files.
Validation Status
- Automated Homelab MSI/GUI/release evidence lane passed inside
LisanStudio-QA. - Manual installed-app QA is complete.
- Private beta handoff decision: ready; previously recorded non-blocking polish
notes are resolved in the current codebase.
Resolved reviewer notes:
- Normal app launch is configured as a Windows GUI executable so it does not
open a command window. - Right-click Undo/Redo menu actions are Lisan-owned actions and trigger the
same editor commands as keyboard shortcuts. - Search result file text and line metadata are kept in a guarded RTL metadata
cluster. - Problems panel diagnostic subtext is right-anchored under the metadata row.
Deferred
- Git UI.
- AI panel.
- Public distribution.
- Auto-update.
- Plugin system.
Release Blockers
- Cursor or selection corruption in mixed Arabic/English code.
- Arabic output mojibake.
- Save/open data loss.
- Installer requiring manual PATH or Python setup.
- MSI install/uninstall smoke failure.
- Missing Qt, Python, or
lughat-althubanlicense payloads. - Hidden BiDi controls inserted by the editor.
- Any return of a native
QMenuBarorQToolBarshell surface. - Left-to-right shell regression in top command bar menus, project/sidebar, tabs, status bar, or bottom panel.
Lisan Studio 0.1.1 Beta
Lisan Studio 0.1.1 Beta Notes
Fixed (data-safety regressions in 0.1.0-beta)
- Project-wide replace now preserves leading whitespace and per-file line endings. (was: stripped indentation, mixed CRLF/LF on apply)
- Editor save preserves the loaded file's line-ending style. (was: silently converted CRLF to LF)
- MSI install registers as a single entry in HKLM\WOW6432Node\Uninstall instead of a dual HKCU+HKLM registration. (was: two entries per install, polluted Programs and Features)
- Build identifier (git short SHA or ISO UTC timestamp) is captured at HKCU\Software\LisanStudio\BuildId for support diagnostics.
Added
- Document model: every open file is tracked by a real DocumentRegistry with version-checked text edits, external file change polling, and a Reload/Keep/Compare prompt when files change externally.
- Workspace trust: grant + revoke commands with an audit trail at .lisan-workspace/trust-audit.jsonl, surfaced in the diagnostics bundle.
- Editor torture coverage for V1.5 gate decisions: 100k-line files, undo/redo storms, find/replace storms, IME composition cycles, soft-wrap on mixed RTL/LTR.
- Search/replace cap notice: "تم اقتطاع نتائج البحث عند 500 ملف" appears in status bar when the 500-file scan cap fires.
- Command-registry sweep: every visible command is now generatively asserted to have id/label/category/trigger/uniqueness/shortcut/no-BiDi-controls.
Changed
- MSI test pipeline migrated to GitHub Actions (.github/workflows/msi-tests.yml). Per-step logs replace the prior custom Hyper-V harness's sparse checkpoint files.
- Editor enforces CRLF on save for new untitled buffers (Windows-default); Mixed-line-ending files are normalized to their dominant style on first save.
- MainWindow extracted into RuntimeOrchestrator, EditorTabsController, ProjectTreeController, BottomPanelController, CommandPaletteController, WorkbenchTheme. Internal refactor - no user-facing behavior change beyond the per-feature fixes above.
Removed
- Legacy Hyper-V harness entry points (qa/vm/*, the wrapper test scripts). MSI test orchestration now lives in the GHA workflow exclusively.
- AllowSameVersionUpgrades on the WiX MajorUpgrade. Each beta now bumps a patch version; same-version replacement is no longer the upgrade cadence.
Known limitations (deferred to V1.5+ / V2)
- No multi-cursor or column selection. (gated on QPlainTextEdit cost-model evidence)
- Terminal panel boundary exists but real shell execution is not yet wired. (gated on stronger trust model)
- No language-server protocol features (completion, diagnostics from unsaved buffers, go-to-definition). (V2 scope)
- No debugger. (V2 scope)
- No Git source-control UI. (V3 scope)
- Search and project-replace scan up to the first 500 files; larger projects truncate with a status-bar notice.
Upgrade from 0.1.0-beta
- Install LisanStudio-0.1.1-beta.msi normally. Windows Installer's MajorUpgrade removes the prior install and installs the new one in a single transaction.
- User settings under HKCU\Software\LisanStudio survive the upgrade.
- The verified upgrade path is the one tested in GHA run 26331615773.
Lisan Studio 0.1.0 Beta Notes
Included
- Native Qt 6 desktop shell.
- Lisan Studio app branding and bundled logo resource.
- Premium dark visual system based on the accepted Claude design.
- Custom RTL Claude-design single top shell with integrated menus, primary run action, and unified command/search field.
- Integrated dropdown menus for file, edit, view, tools, and help.
- Primary run and command/search are single top-bar entry points to avoid duplicate run/search surfaces.
- No inherited
QMenuBarorQToolBarshell surface. - RTL editor tabs, project sidebar, bottom panel tabs, and status bar.
- Arabic-first editor surface based on
QPlainTextEdit. - Minimal
.apysyntax highlighting. - Hidden Unicode BiDi control detection.
- Project folder tree.
- Editor tabs for multiple open documents.
- Bottom panel tabs for terminal, output, problems, search results, and debug.
- Project text search with clickable file/line result rows.
- Problems panel entries for hidden BiDi controls and runtime failures.
- Run current
.apythrough bundled runtime with live output, exit code, elapsed time, and cancel action. - RTL settings dialog with editor font controls, runtime diagnostics, and recent projects.
- Runtime diagnostics for bundled Python,
lughat-althuban, run, lint, and format availability. - Lisan Studio application metadata, executable name, install folder, and shortcut targets.
- Packaged Qt, Python, and
lughat-althubanlicense payloads. - WiX MSI packaging path for
LisanStudio-0.1.0-beta.msi. - MSI install/uninstall smoke script for private beta validation.
- Release evidence script for checksums, validation log, known issues, and screenshot capture.
- Manual beta checklist script for recording the installed-app handoff pass as a professionally formatted Word review packet, with Markdown and JSON traceability files.
Validation Status
- Automated Homelab MSI/GUI/release evidence lane passed inside
LisanStudio-QA. - Manual installed-app QA is complete.
- Private beta handoff decision: ready; previously recorded non-blocking polish
notes are resolved in the current codebase.
Resolved reviewer notes:
- Normal app launch is configured as a Windows GUI executable so it does not
open a command window. - Right-click Undo/Redo menu actions are Lisan-owned actions and trigger the
same editor commands as keyboard shortcuts. - Search result file text and line metadata are kept in a guarded RTL metadata
cluster. - Problems panel diagnostic subtext is right-anchored under the metadata row.
Deferred
- Git UI.
- AI panel.
- Public distribution.
- Auto-update.
- Plugin system.
Release Blockers
- Cursor or selection corruption in mixed Arabic/English code.
- Arabic output mojibake.
- Save/open data loss.
- Installer requiring manual PATH or Python setup.
- MSI install/uninstall smoke failure.
- Missing Qt, Python, or
lughat-althubanlicense payloads. - Hidden BiDi controls inserted by the editor.
- Any return of a native
QMenuBarorQToolBarshell surface. - Left-to-right shell regression in top command bar menus, project/sidebar, tabs, status bar, or bottom panel.
Lisan Studio 0.1.0 Beta
Lisan Studio 0.1.0 Beta Notes
Included
- Native Qt 6 desktop shell.
- Lisan Studio app branding and bundled logo resource.
- Premium dark visual system based on the accepted Claude design.
- Custom RTL Claude-design single top shell with integrated menus, primary run action, and unified command/search field.
- Integrated dropdown menus for file, edit, view, tools, and help.
- Primary run and command/search are single top-bar entry points to avoid duplicate run/search surfaces.
- No inherited
QMenuBarorQToolBarshell surface. - RTL editor tabs, project sidebar, bottom panel tabs, and status bar.
- Arabic-first editor surface based on
QPlainTextEdit. - Minimal
.apysyntax highlighting. - Hidden Unicode BiDi control detection.
- Project folder tree.
- Editor tabs for multiple open documents.
- Bottom panel tabs for terminal, output, problems, search results, and debug.
- Project text search with clickable file/line result rows.
- Problems panel entries for hidden BiDi controls and runtime failures.
- Run current
.apythrough bundled runtime with live output, exit code, elapsed time, and cancel action. - RTL settings dialog with editor font controls, runtime diagnostics, and recent projects.
- Runtime diagnostics for bundled Python,
lughat-althuban, run, lint, and format availability. - Lisan Studio application metadata, executable name, install folder, and shortcut targets.
- Packaged Qt, Python, and
lughat-althubanlicense payloads. - WiX MSI packaging path for
LisanStudio-0.1.0-beta.msi. - MSI install/uninstall smoke script for private beta validation.
- Release evidence script for checksums, validation log, known issues, and screenshot capture.
Deferred
- Git UI.
- AI panel.
- Public distribution.
- Auto-update.
- Plugin system.
Release Blockers
- Cursor or selection corruption in mixed Arabic/English code.
- Arabic output mojibake.
- Save/open data loss.
- Installer requiring manual PATH or Python setup.
- MSI install/uninstall smoke failure.
- Missing Qt, Python, or
lughat-althubanlicense payloads. - Hidden BiDi controls inserted by the editor.
- Any return of a native
QMenuBarorQToolBarshell surface. - Left-to-right shell regression in top command bar menus, project/sidebar, tabs, status bar, or bottom panel.
Validation Summary
- Commit: 901f232
- Automated gate: PASS
- MSI install smoke: PASS
- Installed app screenshot captured from MSI-installed app
- MSI SHA256: 0AD3AE8F033732C3A49BB0D558AFECC43D0D6725813F2288872AD8DEB7F0044C
Full validation log is attached as VALIDATION_LOG.md.