Skip to content

New fastegde-test embedded debugger#29

Open
godronus wants to merge 43 commits intomainfrom
beta
Open

New fastegde-test embedded debugger#29
godronus wants to merge 43 commits intomainfrom
beta

Conversation

@godronus
Copy link
Collaborator

This is the new CDN / HTTP application supported VSCode extension.

Tested on linux and windows, confirmed working on both.

extension builds must be sequential

checksum paths

fix versioning across builds
basic integration of fastedge-debugger into vscode extension
update upstream repo
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 (configRoot vs buildRoot) 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.

@godronus godronus requested a review from qrdl March 25, 2026 17:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants