EDGEDECK / DOCS

Tests

Every test run on EDGEdeck so far: how to run it again, what to expect, and what it showed. The automated tests run on every release; the hand tests are the owner’s, on the laptop and on the owner’s PC (game on E:). New tests are added here when they are first run.

Releases up to 0.26.6 were published as REDdeck; this page uses the new name throughout.

Last updated 2026-10-17. Dates before then come from the session records; anything not confirmed there is marked unverified.

At a glance

Test Kind Last run Result
Type check and build Automated, every release 2026-10-16 (0.26.6) Pass
Smoke test Automated, every release 2026-10-16 (0.26.6) Pass
UI test Automated, by hand only (not in CI) 2026-10-14 (0.26.0) Pass
Publish workflow Automated, on a tag 2026-10-16 (v0.26.6) Pass
npm package install By hand 2026-10-16 (0.26.5) Pass
Hand tests by the owner By hand, real game 2026-10-16 23 runs, see the table
Waiting By hand   1 open

Automated

Type check and build

npm install
npm run typecheck
npm run build

typecheck is tsc --noEmit. build bundles dist/extension.js, core.js, mcp.js and uiTest.js with esbuild and writes ThirdPartyNotices.txt. Expected: no errors.

Smoke test

npm run build
npm run smoke

scripts/smoke.mjs runs the core end to end against a fake game folder in a temp directory. It never touches a real library or game. Expected: ends with smoke: all passed.

Area Checks
Classifier Bare archive (readme ignored), mixed archive, reds, tweak and xl, a CET folder, option folders as a choice, REDnode packages in three layouts (and REDnode itself as a framework), loose .reds, RED4ext plugin, REDmod, frameworks
Library and deploy Extract a zip with 7za and add it; a conflict won by order; hardlinks (7 linked, none skipped); the deploy report (mods counted, paths, the load order files section); a single .archive goes to archive/pc/mod and in and out of modlist.txt; a second deploy does nothing; a reorder replaces the file
Outside changes A changed file is skipped until answered, Keep imports it and relinks, a missing file comes back; a rebuilt mod relinks silently
Projects Find the .cpmodproj, its packed files, re-sync; installProject adds as version dev, then refreshes in place and keeps its slot
Families and order Versions newest first, update, switch version, a new version takes the old one’s place, two on in a family found; place above; sections (add, order, move, rename, delete, the section box)
Loadouts Version 1 save and load; Default from the current state, sync writes once, new, edit without touching mods, Make active both ways, the active one cannot be deleted, rename, export, import, delete
CLI and MCP edgedeck list --json, off and on, conflicts, loadouts, deploy, changes, mod; the MCP server over stdio through the SDK’s client (list, turn off reaches the files, pending, a bad id is an error, the tool count)
Off and Undo Files and created folders leave; Undo puts a backed-up foreign file back and keeps the user’s own files
Game Archive conflict maths; REDmod’s enabled list; finding the game through Steam libraries, GOG and Epic; the game version from a real install if present
REDbridge A build next to the checkout is new enough and archive.openMod lists a sample (skipped if absent); the latest GitHub release has a win-x64.zip (skipped offline); dotnet10Root
Nexus Single sign-on against a fake socket; OAuth with PKCE against a fake HTTP Nexus (state, code exchange, refusal, cancel, refresh, the user from the token, a 401 renewed once); nxm parsing, versions, newest file, the link handler; the registered forwarder run as Windows runs it, with a link that has & between its parameters
Add to Project Loose files under source/resources, archives reported, a repeat counted as same, a changed file kept unless Replace
Frameworks Game version against the manifest, the summary line
Vortex Staging folders (user’s choice first, the manifest’s stagingPath, other drives), display names (CET by Nexus id 107); the live Vortex library if installed, imported read-only into the temp library

Not covered: the running-game check (gameRunning(), 0.26.3), checked only as “not running” on the laptop.

UI test in a real VS Code

npm run build
npm run test:ui

Downloads a VS Code build into .vscode-test/ once (about 350 MB), then runs src/uiTest.ts inside it with a scratch library and a fake game. Expected: ui test: passed. Not part of the publish workflow.

Check Expected
Activation edgemodders.edgedeck activates
Commands All 32 registered
Library Created on refresh
Deploy A hand-made mod deploys without a dialog: the archive in the game, a manifest, modlist.txt reading UiTest.archive
Views Check conflicts opens Conflicts, Show changes opens Pending changes, Open page opens EDGEdeck, Details opens

Publish workflow

Push a tag vX.Y.Z matching package.json. .github/workflows/publish.yml checks the match, runs typecheck, build and smoke, packages for win32-x64, builds the Nexus zip, publishes to the VS Code Marketplace and Open VSX, publishes @edgemodders/edgedeck-mcp to npm (skipped if that version exists), and makes the GitHub release. verify-tokens.yml, run by hand, checks the store tokens.

Run Result
v0.26.0 (10-14), v0.26.1 (10-15), v0.26.2, v0.26.3 (10-16) Pass
v0.26.4 (10-16) Failed at npm: npm publish dist/npm was read as a GitHub repo; it needs ./dist/npm. The extension reached both stores; the GitHub release was made by hand
v0.26.5 (10-16) Pass, npm included
v0.26.6 (10-16) Pass, the first with the Nexus zip (EDGEdeck-0.26.6-nexus.zip on the release)
verify-tokens (10-14) Pass on the last of four runs (one failure, cause not recorded)

npm package install

By hand, not scripted. Install the published @edgemodders/edgedeck-mcp into an empty folder, start edgedeck-mcp --library <scratch> through an MCP client, and run edgedeck list --json --library <scratch>.

Run 2026-10-16 on 0.26.5: pass. The server answered with 14 edgedeck_* tools and a edgedeck_list call; the CLI ran.

Hand tests by the owner

Date Version Where Tested Result, and what came of it
10-12 0.7.0 Laptop Purging Vortex before the first deploy Vortex reported a missing .NET runtime: a user-level DOTNET_ROOT from the REDbridge setup. Removed; 0.7.1 sets it for REDbridge only
10-12 0.7.1 Laptop First real deploy 358 files (357 hardlinks and modlist.txt), 17 mods with RED4ext, redscript, ArchiveXL, Codeware, CET; no outside changes; one conflict (BackstoryManager.reds). Led to the Conflicts panel in 0.8.0. The game’s own launch afterwards: unverified
10-12 0.8.0 to 0.8.2 Laptop Show conflicts “Works well.” Dropdowns (0.8.1, “Looks good”) and Deploy now (0.8.2) on request
10-12 0.7 to 0.9 Laptop Nexus with a pasted API key Key validated; the update check ran on 13 mods with Nexus ids (Codeware 1.20.3 to 1.20.5 offered)
10-12 0.9.0, 0.9.1 Laptop The mods table page “Looks good”; the framework chip first (0.9.1); a doubled “update available” fixed and update from the row added (0.9.2)
10-12 0.9.2 Laptop Update from a live Nexus download Downloaded several times, a row each. 0.10.0: one row per mod with a version dropdown
10-12 0.10.0 Laptop Switch back to an older Codeware “Looks good”, but Deploy said 18 changes. 0.10.1 counts paths: 9
10-13 0.11.0, 0.12.0 PC VSIX install, Get REDbridge “Seemed to complete successfully” (REDbridge 0.4.0). Telling whether it ran led to the footer status (0.13.1)
10-13 0.12.0 to 0.13.2 PC Finding a Steam game on E: Not found. 0.13.0 reads Steam’s library list, GOG and Epic; 0.13.2 logs what was checked. After clearing edgedeck.gamePath and reloading, found through Steam
10-13 0.14.0 (unverified which) PC The build sent just before “All looks good”
10-13 0.17.x PC F5 from source The build task failed after a pull: dependencies missing. npm install fixed it
10-14 0.20.0 PC REDnode package kind: EDGEbuilder added and deployed, after all Vortex mods were purged Worked: red4ext\plugins\REDnode\apps\edgebuilder\rednode-app.json in place
10-14 0.20.0 PC Import from Vortex “No Vortex mods were found”: staging was on E:. 0.20.1 reads Vortex’s stagingPath and other drives, and asks. RED4ext, redscript and Codeware were then re-added through EDGEdeck, and EDGEbuilder B1 passed in game that night
10-14 0.21.0 PC Conflicts with EDGEbuilder 0.2.0 beside 0.1.1 Every picker said “Resolve…”: two versions both on, not one family. 0.21.1: a new version takes the old one’s place, one row per mod pair, Use only
10-14 0.23.0 PC Sections, the section box, icon actions, resizable columns “Looks good”; the yellow icons “too loud”: grey with hover in 0.23.1
10-14 0.24.0 PC Folding sections “Works great.”
10-14 0.25.0 test build PC Import from Vortex (TweakXL) Everything pre-ticked, and a search hid over 900 ticked mods, so all imported and it looked hung. 0.25.0: nothing ticked, progress with Cancel, a question above 20; section-wide Put in section and Remove on request
10-14 0.25.0, 0.25.1 PC The section buttons Not shown: VS Code kept the earlier build of the same version. Rebuilt as 0.25.1, “It works now.” Since then every build sent gets its own version
10-14 0.25.1, 0.25.2 PC Deploying 6 mods The toast gave files but no mods. 0.25.2 counts mods and adds View report: “It works very well.”
10-15 0.26.0 PC Adding a single .archive, then deploy A single file could not be added, and modlist.txt was not updated. 0.26.1 fixes both; the fix not yet reported (below)
10-16 0.26.1 PC Import from Vortex, search “Cyber Engine Tweaks” Not found: named after its download. 0.26.2: known names by Nexus id, a wider search. Not yet reported back (below)
10-16 0.26.2 PC Turn a mod off, add an .archive, deploy EPERM on the archive: the game was running. 0.26.3 waits for the game to close, the CLI refuses, a locked file gets a plain message
10-16 0.26.3 or later PC Deploying EDGEbuilder 0.3.2 and 0.3.3 for its tests Deployed; EDGEbuilder’s retest passed. Nothing EDGEdeck-specific reported
10-17 0.27.0 test build PC The switch to EDGEdeck: every mod off and deployed in REDdeck, REDdeck uninstalled, EDGEdeck installed from the .vsix and set up from nothing, mods added again and deployed Worked. The empty Mods view had no Handle download links button (the step showed only in the Set up group of a non-empty list): 0.27.1 adds it to the welcome view
10-17 0.27.0 test build PC A “Mod manager download” button on Nexus, after Handle download links A console window flashed, then nothing. The registered PowerShell forwarder took the link as code, and the & between its parameters is a parse error there; this was so since nxm links came in (0.7). 0.27.1 quotes the link, rewrites an older EDGEdeck registration by itself, and logs each link it receives; the smoke test now runs the forwarder
10-17 0.27.1 test build PC Start EDGEdeck with 0.27.0’s registration in place No “updated EDGEdeck’s handler” line, and the registry kept the old command. The startup read stored its answer in a state object that refresh() had just replaced, so EDGEdeck never knew who handled the links at start (since REDdeck). 0.27.2 keeps the answer, and logs its version and where links go; on the laptop, with the old command written in, a real VS Code run logged “from an older build” and rewrote it
10-17 0.27.2 test build PC A “Mod manager download” button on Nexus The log said Nexus link received and showed the rewrite at start, then Nexus: 422 ... Invalid parameter 'expires' value nil. VS Code decodes the vscode:// query, so the nxm link’s own & split it and only ?key= came through (the UI test showed the old reading giving ...?key=a-b_c). 0.27.3 takes everything after url=; smoke and UI tests check it
10-17 0.27.3 test build PC A “Mod manager download” button on Nexus Passed. The log showed the whole link (key, expires, user_id), and the file downloaded into the library as a new mod. The first real nxm test since links came in (0.7)
10-17 0.27.3 PC The four waiting tests that need no project: loadouts (0.26.0), modlist.txt with a bare .archive (0.26.1), deploy with the game running (0.26.3), CET’s known name in Import from Vortex (0.26.2) Passed. A copied loadout changed nothing in the sidebar until made active, and its deploy removed the files of the mods turned off; a bare archive landed in modlist.txt; with the game open, Deploy showed the modal with The game is closed now; clicked with the game still running (twice) it came back and nothing deployed, and after quitting the game, clicking it deployed (EDGEdeck checks again only on the click); “CET” and “107” found Cyber Engine Tweaks
10-17 0.27.3 PC The leftovers: light theme, Suggest the HUD theme, Undo deploy on the real game, the MCP server from an assistant Passed. Readable in Light+; the theme suggestion offered the HUD theme; Undo deploy removed every deployed file; after Connect an assistant, the assistant answered “9 mods, 8 on, none deployed yet”, true after the Undo, so it read the library and the game folder’s manifest. Found: the command palette showed “EDGEdeck: EDGEdeck: Connect an assistant (MCP)…” (title and category both said EDGEdeck); fixed for the next build
10-17 0.27.3 PC Add to Project into a REDcode project: loose files (0.18.0) and an archive (0.25.0), all resources, chosen ones, and a second time Passed. Loose files went under source\resources, archive resources under source\archive, a repeat counted them as already there. The owner: this replaces installing a contributor’s .archive into the game for WolvenKit to expand, copying out and removing it again. Seen: “project” alone read as EDGEdeck’s library at first
10-17 0.27.3 PC REDmod deploy (M1): the REDmod DLC installed, a REDmod package added and deployed Passed. The first time a REDmod package went through EDGEdeck’s deploy and redMod.exe deploy

Waiting for a hand test

Every hand test before 0.27.4 has passed (2026-10-17). New ones go in this table:

# Test Since Steps
1 Add an archive to the REDcode project 0.27.4; REDcode 0.6.1+ and an open project Right-click an .archive outside the library in the Explorer (or run the command and pick one): all or chosen resources land under source\archive, nothing changes in the library or the game. Again: Keep mine and Replace. The right-click menu on a mod says Add to REDcode project