Commit Graph

64 Commits

Author SHA1 Message Date
plenarius 026b4d1e15 fix: add npm cache, fix release asset upload flow
Build & Release / build-linux-win (push) Failing after 7m49s
2026-04-21 12:30:57 -04:00
plenarius ed200713df fix: add version/description/author for electron-builder
Build & Release / build-linux-win (push) Has been cancelled
2026-04-21 12:30:18 -04:00
plenarius 90d7b05040 fix: remove sudo from release workflow (runner is root)
Build & Release / build-linux-win (push) Failing after 2m36s
2026-04-21 12:27:07 -04:00
plenarius 5be8299e8e fix: use RELEASE_TOKEN secret name in workflow
Build & Release / build-linux-win (push) Failing after 3m25s
2026-04-21 12:22:22 -04:00
plenarius 3329d09a33 chore: update LSP submodule to fix/forge-compatibility branch 2026-04-21 12:21:23 -04:00
plenarius f851d8b8f2 Layonara Forge — NWN Development IDE
Electron desktop application for Neverwinter Nights module development.
Clone, edit, build, and run a complete Layonara NWNX server with only
Docker required.

- React 19 + Vite frontend with Monaco editor and NWScript LSP
- Node.js + Express backend managing Docker sibling containers
- Electron shell with Docker availability check and auto-setup
- Builder image auto-builds on first use from bundled Dockerfile
- Cross-platform: Windows (.exe), macOS (.dmg), Linux (.AppImage)
- Gitea Actions CI for automated release builds
2026-04-21 12:14:38 -04:00
plenarius f39f1d818b feat: integrate monaco-languageclient v10 with NWScript LSP
Replace hand-rolled LSP client (lspClient.ts, useLspClient.ts) with
monaco-languageclient v10 extended mode using @typefox/monaco-editor-react.
NWScript TextMate grammar from the LSP submodule provides syntax highlighting.
Full LSP features: completion, hover, diagnostics, go-to-definition, signature
help — all wired through WebSocket to the nwscript-language-server.

LSP server patches: fix workspaceFolders null assertion crash, handle missing
workspace/configuration gracefully, derive rootPath from rootUri when null,
guard tokenizer getRawTokenContent against undefined tokens.

Backend fixes: WebSocket routing changed to noServer mode so /ws, /ws/lsp,
and /ws/terminal/* don't conflict. TLK index loaded at startup (41,927 entries
from nwn-haks/layonara.tlk.json). Workspace routes get proper try/catch.
writeConfig creates parent directories. setupClone ensures workspace structure.

Frontend: GffEditor and AreaEditor rewritten with inline styles and TLK
resolution for CExoLocString fields. EditorTabs rewritten with lucide icons.
Tab content hydrates from API on refresh. Setup wizard gets friendly error
messages. SimpleEditor/SimpleDiffEditor for non-LSP editor uses. Vite config
updated for monaco-vscode-api compatibility.
2026-04-21 05:23:52 -04:00
plenarius cbe51a6e67 feat: complete UI/UX overhaul with Impeccable design system
Replace Inter/Baskerville with self-hosted Manrope/Alegreya/JetBrains Mono
variable fonts. Migrate all colors from hex to OKLCH tokens (30+ CSS custom
properties) with full dark/light mode support. Replace Unicode emoji with
lucide-react SVG icons throughout. Convert all page layouts to inline styles
(Tailwind CSS 4 flex/grid classes unreliable in this project). Code-split
routes via React.lazy (760KB → 15KB initial shell + 10 lazy chunks).

Add global styles: scrollbar theming, selection color, input/button bases,
:focus-visible ring, prefers-reduced-motion. Setup wizard gets 4-phase
indicator with numbered circles, PathInput and StatusDot components.
Toast container gets aria-live="polite". Tab close buttons changed to
proper <button> elements with aria-labels.

All 8 pages (Dashboard, Editor, Build, Server, Toolset, Repos, Settings,
Setup) rewritten with consistent card/section/button patterns.
2026-04-21 03:06:29 -04:00
plenarius 8b35c41a52 fix: skip tsc type-check in frontend build, let Vite handle it 2026-04-21 00:10:12 -04:00
plenarius 0de60e6f00 fix: use bundler moduleResolution for frontend tsconfig 2026-04-21 00:08:55 -04:00
plenarius a8fa85416d fix: resolve TypeScript errors in editor routes and git service imports 2026-04-21 00:08:10 -04:00
plenarius d64bf905d3 feat: optimize builder Dockerfile with pre-built release binaries
Download neverwinter.nim tools, nasher, and layonara_nwn from GitHub
Releases instead of compiling from source. Reduces build time from
~15 minutes to ~45 seconds.
2026-04-21 00:06:16 -04:00
plenarius 288c762356 feat: add GIT_PROVIDER_URL to Forge docker-compose environment 2026-04-20 23:07:10 -04:00
plenarius 2a97af5ce8 feat: update Setup Wizard for Gitea tokens and URLs 2026-04-20 23:06:55 -04:00
plenarius b85f70dc95 refactor: replace GitHub API with Gitea-compatible git provider service 2026-04-20 23:05:38 -04:00
plenarius 43d3aa979c feat: add complete database schema dump with seed data 2026-04-20 22:13:19 -04:00
plenarius 3a1df485ed feat: add error display, error boundaries, and toast notifications 2026-04-20 22:12:50 -04:00
plenarius 3df79d3b17 feat: add error display, error boundaries, and toast notifications 2026-04-20 22:12:25 -04:00
plenarius 72027a3024 feat: upgrade Dashboard with server status, repo summary, and quick actions 2026-04-20 22:11:37 -04:00
plenarius 8df7a78c08 feat: add Settings page with PAT management, theme, and shortcuts 2026-04-20 22:11:03 -04:00
plenarius 1a46baa7fe feat: add global keyboard shortcuts for navigation and panels 2026-04-20 22:10:11 -04:00
plenarius 83d1a0a169 feat: polish IDE layout with sidebar nav, resizable panels, and routing 2026-04-20 22:09:41 -04:00
plenarius c310b04f74 feat: add Layonara branding assets and IDE header 2026-04-20 22:09:09 -04:00
plenarius 1255cee8e6 feat: add dark/light theme toggle with Layonara color palette 2026-04-20 22:08:41 -04:00
plenarius 8a3cb1b0a3 feat: add Setup Wizard with 10-step contributor onboarding flow 2026-04-20 22:08:07 -04:00
plenarius 8849c25dff feat: add Repos page with commit dialog, PR creation, and upstream badges 2026-04-20 21:57:52 -04:00
plenarius b224ebc927 feat: add upstream repo polling every 15 minutes 2026-04-20 21:55:52 -04:00
plenarius 3784d9f13a feat: add conventional commit message validation 2026-04-20 21:55:23 -04:00
plenarius 7f848aad5d feat: add Git service for clone, pull, commit, push operations 2026-04-20 21:54:56 -04:00
plenarius f54816a622 feat: add GitHub service for PAT validation, forking, and PR management 2026-04-20 21:54:09 -04:00
plenarius 6e3abb0b07 feat: add specialized visual editors for items, creatures, areas, and dialogs 2026-04-20 20:11:44 -04:00
plenarius 5620e38282 feat: add generic GFF visual editor component 2026-04-20 20:09:24 -04:00
plenarius c7f5646e62 feat: add GFF type schema definitions for visual editors 2026-04-20 20:07:48 -04:00
plenarius 3b91c0312d feat: add Toolset page with live change detection and diff viewer 2026-04-20 20:01:27 -04:00
plenarius 269ce1178c feat: add Toolset service for temp0/ watching and GFF change detection 2026-04-20 20:00:17 -04:00
plenarius 3484404b94 feat: add Server page with log viewer, SQL console, and config editor 2026-04-20 19:57:34 -04:00
plenarius e8cce96557 feat: add SQL console endpoint for local MariaDB queries 2026-04-20 19:56:22 -04:00
plenarius 695c5d4fb7 feat: add real-time server log streaming via WebSocket 2026-04-20 19:55:58 -04:00
plenarius dc45098cd1 feat: add NWN server stack management service 2026-04-20 19:55:31 -04:00
plenarius 973310113c feat: add Build page UI with real-time output streaming 2026-04-20 19:54:42 -04:00
plenarius 0e31277eec feat: add NWNX C++ build pipeline 2026-04-20 19:51:34 -04:00
plenarius 6d18386473 feat: add hak build pipeline 2026-04-20 19:51:05 -04:00
plenarius 5c840e324b feat: add script hot-reload and compile-on-save 2026-04-20 19:50:39 -04:00
plenarius 59909a7b48 feat: add module build service with nasher compile and pack 2026-04-20 19:50:07 -04:00
plenarius b7177a8fd7 feat: connect NWScript language server to Monaco via WebSocket
Add the forked nwscript-ee-language-server as a git submodule and wire
it up to the editor through a WebSocket-based LSP bridge:

- Backend: lsp.service.ts spawns the language server in --stdio mode
  and bridges JSON-RPC messages between WebSocket and stdin/stdout
- Backend: /ws/lsp upgrade handler in index.ts
- Frontend: LspClient class using vscode-ws-jsonrpc for JSON-RPC over
  WebSocket, with Monaco providers for completions, hover, and
  diagnostics
- Frontend: useLspClient/useLspDocument hooks integrated into
  MonacoEditor component
2026-04-20 19:41:05 -04:00
plenarius 64908098cd feat: add integrated terminal with xterm.js and shell sessions 2026-04-20 19:32:02 -04:00
plenarius b36391b520 feat: add global workspace search with regex and file filtering 2026-04-20 19:30:42 -04:00
plenarius d7c5f18544 feat: add SQL syntax highlighting inside NWScript query strings 2026-04-20 19:12:19 -04:00
plenarius 03b762e239 feat: add 2DA intellisense parser and lookup for NWScript editor 2026-04-20 19:12:03 -04:00
plenarius 99d0c4f1e9 feat: add TLK string preview lookup for NWScript editor 2026-04-20 19:11:32 -04:00