Conversation
extension builds must be sequential checksum paths fix versioning across builds
basic F5 running works
basic integration of fastedge-debugger into vscode extension
update workflow
update upstream repo
fix debugger
beta.1 release
windows compatible
fix esbuild bundling for jsonc
Fix/drag drop
debugger fixes for codespace
Update README.md with latest extension functionality
Contributor
There was a problem hiding this comment.
Pull request overview
This PR replaces the legacy DAP-based debug flow with a bundled fastedge-debugger (Node server + webview UI), adds per-app root isolation, and updates build/CI and docs to support the new debugger packaging model.
Changes:
- Added app root resolution utilities (
configRootvsbuildRoot) and updated compilers to emit WASM into<configRoot>/.fastedge/bin/. - Introduced bundled debugger integration (server manager + webview) and new VS Code commands/context-menu actions, including workspace init for
launch.json. - Removed legacy DAP implementation + example projects, and updated CI/workflows to download and filter the debugger bundle per-platform.
Reviewed changes
Copilot reviewed 83 out of 92 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| src/utils/resolveAppRoot.ts | New helpers to resolve configRoot/buildRoot and create minimal config file. |
| src/utils/resolveAppRoot.test.ts | Vitest coverage for root resolution and config file creation. |
| src/types.ts | Adds assemblyscript language and removes legacy launch config type export. |
| src/extension.ts | Registers new commands, F5 routing, and per-app debugger component factory; adds deactivate cleanup. |
| src/dotenv/index.ts | Minor formatting/logic adjustments for workspace-path construction. |
| src/debugger/index.ts | Exposes debugger integration exports. |
| src/debugger/DebuggerWebviewProvider.ts | New webview panel implementation embedding debugger UI and bridging messages/dialogs. |
| src/debugger/DebuggerServerManager.ts | New bundled server lifecycle manager with port scanning and per-app scoping. |
| src/compiler/rustBuild.ts | Uses buildRoot for cargo CWD and copies WASM to standard .fastedge/bin location under configRoot. |
| src/compiler/jsBuild.ts | Uses buildRoot + configRoot split and outputs WASM under .fastedge/bin. |
| src/compiler/index.ts | Adds AssemblyScript support and improves language detection (via asconfig.json). |
| src/compiler/asBuild.ts | New AssemblyScript build pipeline emitting WASM to .fastedge/bin/debugger.wasm. |
| src/commands/runDebugger.ts | Replaces launch.json-driven debug with build→start server→open webview flow; adds “load wasm/config” commands. |
| src/commands/mcpJson.ts | Adjusts generated docker command quoting (platform-specific). |
| src/commands/launchJson.ts | Removed legacy “generate launch.json” command implementation. |
| src/commands/initWorkspace.ts | New “initialize workspace” command that safely creates/edits .vscode/launch.json (JSONC-aware). |
| src/commands/index.ts | Updates exported command set (initWorkspace replaces launchJson). |
| src/FastEdgeDebugSession.ts | Removes legacy DAP debug session implementation. |
| src/FastEdgeDebugAdapterDescriptorFactory.ts | Removes legacy debug adapter descriptor factory. |
| src/BinaryDebugConfigurationProvider.ts | Removes legacy debug configuration provider. |
| package.json | Bumps version, adds Vitest, updates contributions/commands/menus, and simplifies debugger config attributes. |
| esbuild/build-ext.js | Sets mainFields ordering for bundling. |
| context/features/DOTENV_SYSTEM.md | Adds current dotenv architecture documentation. |
| context/features/CROSS_PLATFORM.md | Adds cross-platform rules and CI notes. |
| context/features/COMPILER_SYSTEM.md | Adds compiler architecture docs including config/build root split and AS build. |
| context/features/COMMANDS.md | Documents updated command set and F5 behavior. |
| context/archived/README.md | Adds archived-context overview for pre-webview architecture. |
| context/archived/ARCHIVED_CONFIGURATION_SYSTEM.md | Archives old DAP-era configuration system docs. |
| context/archived/ARCHIVED_CHANGE_LOG.md | Archives pre-webview changelog entries. |
| context/architecture/EXTENSION_LIFECYCLE.md | Documents new activation/registration and per-app isolation approach. |
| context/architecture/DEBUGGER_ARCHITECTURE.md | Documents bundled debugger server + webview approach. |
| context/architecture/CONFIGURATION_SYSTEM.md | Documents current config model (fastedge-config + dotenv) and launch.json entrypoint-only usage. |
| context/architecture/BUILD_SYSTEM.md | Documents new build/packaging and CI pipeline invariants. |
| context/SEARCH_GUIDE.md | Adds documentation search guidance. |
| context/PROJECT_OVERVIEW.md | Updates repo overview to reflect new architecture and language support. |
| context/CONTEXT_INDEX.md | Adds context navigation index. |
| README.md | Updates user-facing docs for webview debugger, commands, config model, and AS support. |
| DOTENV.md | Removes links to deleted exampleFolder paths. |
| CLAUDE.md | Adds agent guidance for discovery-based docs usage. |
| .vscodeignore | Updates packaging exclusions and ensures dist/debugger/** inclusion. |
| .gitignore | Adds .fastedge/bin/ artifacts. |
| .github/workflows/download-debugger.yml | New workflow to download/filter debugger bundle per platform. |
| .github/workflows/download-cli.yml | Removes legacy CLI-only download workflow. |
| .github/workflows/create-release.yml | Updates release orchestration to use debugger bundle workflow; adds permissions and refactors dependencies. |
| .github/workflows/build-extension.yml | Updates build to consume debugger artifact and validate bundle contents. |
| exampleFolder/workspace.rs | Removed example assets. |
| exampleFolder/tsconfig.json | Removed example assets. |
| exampleFolder/rust-workspace/src/two/main.rs | Removed example assets. |
| exampleFolder/rust-workspace/src/two/Cargo.toml | Removed example assets. |
| exampleFolder/rust-workspace/src/one/main.rs | Removed example assets. |
| exampleFolder/rust-workspace/src/one/Cargo.toml | Removed example assets. |
| exampleFolder/rust-workspace/src/Cargo.toml | Removed example assets. |
| exampleFolder/rust-project/src/second_project/main.rs | Removed example assets. |
| exampleFolder/rust-project/src/second_project/Cargo.toml | Removed example assets. |
| exampleFolder/rust-project/src/print/main.rs | Removed example assets. |
| exampleFolder/rust-project/src/print/Cargo.toml | Removed example assets. |
| exampleFolder/rust-project/src/lib.rs | Removed example assets. |
| exampleFolder/rust-project/src/dotenv/dotenv.rs | Removed example assets. |
| exampleFolder/rust-project/src/dotenv/Cargo.toml | Removed example assets. |
| exampleFolder/rust-project/src/dotenv/.env.variables | Removed example assets. |
| exampleFolder/rust-project/src/dotenv/.env.secrets | Removed example assets. |
| exampleFolder/rust-project/src/dotenv/.env.rsp_headers | Removed example assets. |
| exampleFolder/rust-project/src/dotenv/.env.req_headers | Removed example assets. |
| exampleFolder/rust-project/src/dotenv/.env | Removed example assets. |
| exampleFolder/rust-project/Cargo.toml | Removed example assets. |
| exampleFolder/package.json | Removed example assets. |
| exampleFolder/js-workspace/index.js | Removed example assets. |
| exampleFolder/js-workspace/hell.js | Removed example assets. |
| exampleFolder/js-project/src/print/index.js | Removed example assets. |
| exampleFolder/js-project/src/index.ts | Removed example assets. |
| exampleFolder/js-project/src/envVars/index.js | Removed example assets. |
| exampleFolder/js-project/src/dotenvFiles/dotenv-tester.js | Removed example assets. |
| exampleFolder/js-project/src/dotenvFiles/.env.variables | Removed example assets. |
| exampleFolder/js-project/src/dotenvFiles/.env.secrets | Removed example assets. |
| exampleFolder/js-project/src/dotenvFiles/.env.rsp_headers | Removed example assets. |
| exampleFolder/js-project/src/dotenvFiles/.env.req_headers | Removed example assets. |
| exampleFolder/js-project/src/dotenvFiles/.env | Removed example assets. |
| exampleFolder/README.md | Removed example assets. |
| exampleFolder/Cargo.toml | Removed example assets. |
| exampleFolder/.node-version | Removed example assets. |
| exampleFolder/.gitignore | Removed example assets. |
| exampleFolder/.cargo/config.toml | Removed example assets. |
Files not reviewed (2)
- exampleFolder/pnpm-lock.yaml: Language not supported
- pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (1)
src/compiler/jsBuild.ts:92
- compileJavascriptBinary() builds the output path using string concatenation with "/" (e.g.,
${binPath}/${BINARY_NAME}) both in the spawn args and the resolved return value. This can produce non-normalized paths on Windows. Use path.join(binPath, BINARY_NAME) consistently for the output path.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is the new CDN / HTTP application supported VSCode extension.
Tested on linux and windows, confirmed working on both.