Functional Testing — Cycle 1
Functional Testing — Cycle 1
Date: 2026-04-08
Working directory: C:\Users\keen4\WxManBran\tools\tropical-update-publisher\build_v2\v1\tools\tropical-update-publisher
Summary
| Metric | Value |
|---|---|
| Total features | 111 |
| Tested this cycle | 47 |
| PASS | 15 |
| FAIL | 3 |
| BLOCKED | 28 |
| PARTIAL | 1 |
| REGRESSION | 0 |
| UNTESTED | 28 |
| Health Score | 33% |
| Delta | UNTESTED reduced from 75 to 28; raw root tsc --noEmit reduced from 1086 errors to 0 after fixing tsconfig.json |
Notes:
- No screenshots were captured. The renderer never reached a usable app window because both dev and packaged launch paths failed before a stable UI rendered.
- Phase 0 compile sweep outcome:
- Initial raw
tsc --noEmit: 1086 errors from the umbrellatsconfig.json. - Fix applied: narrowed the root
tsconfig.jsonto config-only scope. - Current raw
tsc --noEmit: PASS. - Current
npm run typecheck: PASS. npm run build: still FAILS at renderer build.
- Initial raw
Detailed FAIL List
CRITICAL — F003 npm run build / npm run build:win Packaging Workflow
- Break points:
node_modules/esbuild/lib/main.js:1978node_modules/app-builder-bin/win/x64/app-builder.exespawn fromnode_modules/builder-util/src/util.ts:177package.json:11package.json:14package.json:16
- What happened:
cmd /c npm run buildfailed duringvite buildwithspawn EPERM.cmd /c npm run build:winfailed before packaging withCannot spawn ... app-builder.exe: spawn EPERM.
- What should happen:
- The renderer bundle should build successfully and the Windows NSIS packaging flow should proceed to artifact creation.
- Evidence:
- Command output from
cmd /c npm run build - Command output from
cmd /c npm run build:win
- Command output from
CRITICAL — F001 npm run dev Development Launch Path
- Break points:
package.json:9node_modules/concurrently/dist/src/spawn.js:25node_modules/esbuild/lib/main.js:1978
- What happened:
cmd /c npm run devfailed before any usable app window opened.- The scripted path died on subprocess spawn, and direct
viteexecution also failed withspawn EPERM.
- What should happen:
- Vite and Electron should both start and the app window should load from the dev server.
- Evidence:
- Command output from
cmd /c npm run dev
- Command output from
CRITICAL — F002 npm start Packaged-Style Local Launch Path
- Break points:
package.json:17src/main/index.ts:244src/main/index.ts:245src/main/index.ts:246src/main/index.ts:247
- What happened:
cmd /c npm startexited without producing a usable packaged-style window.- The renderer bundle is absent, and the main process code path explicitly falls back to
about:blankwhendist/renderer/index.htmlis missing.
- What should happen:
- The compiled renderer should exist and Electron should open the app window against that built renderer.
- Evidence:
- Command output from
cmd /c npm start - Source trace in
src/main/index.ts:244-247
- Command output from
HIGH — F004 npm test, npm run lint, And npm run typecheck Is Only Partial
- Break points:
- Lint:
src/main/app/crashGuard.ts:151src/main/app/crashGuard.ts:158src/main/app/lifecycle.ts:49src/main/ipc/handlers/docHandlers.ts:24src/main/ipc/handlers/utilityHandlers.ts:28src/main/services/git/GitService.ts:139src/main/services/word/WordDocumentService.ts:41tests/main/fileCopyService.test.ts:39tests/main/fileCopyService.test.ts:70tests/main/pathService.test.ts:15tests/main/singleInstance.test.ts:12tests/renderer/windowApiMock.ts:73
- Test startup:
node_modules/esbuild/lib/main.js:1978vitest.config.ts
- Lint:
- What happened:
npm run typecheck: PASS.npm run lint: FAIL with 14 errors.npm test: FAIL during Vitest startup because Vite/esbuild could not spawn.
- What should happen:
- All three repo verification commands should run cleanly without manual intervention.
- Evidence:
- Command output from
cmd /c npm run typecheck - Command output from
cmd /c npm run lint - Command output from
cmd /c npm test
- Command output from
PASS Evidence
- F007 Windows installer configuration:
package.json:72-91containsappId,productName,win.target = nsis,nsis.oneClick = false, andallowToChangeInstallationDirectory = true. - F028 File copy + metadata sidecars:
refinement-state/test-fixtures/file-copy-result.jsonandrefinement-state/test-fixtures/file-copy-overwrite-result.json - F036 NEW filename validation:
refinement-state/test-fixtures/file-validator-result.json - F037 legacy filename auto-conversion:
refinement-state/test-fixtures/file-validator-result.json - F038 display formatting with configurable timezone label:
refinement-state/test-fixtures/file-validator-result.json - F041 storm folder creation IPC:
refinement-state/test-fixtures/storm-folder-result.jsonandrefinement-state/test-fixtures/storm-folder-duplicate-result.json - F042 single storm folder rename IPC, including busy-retry helper:
refinement-state/test-fixtures/storm-folder-result.jsonandrefinement-state/test-fixtures/storm-folder-retry-result.json - F043 bulk storm folder sync IPC:
refinement-state/test-fixtures/storm-sync-mixed-result.json - F044 storm folder naming rules engine:
refinement-state/test-fixtures/storm-folder-rules-result.json - F046 quick browse base path lookup:
refinement-state/test-fixtures/quick-browse-base-path-result.jsonandrefinement-state/test-fixtures/quick-browse-invalid-base-path-result.json - F047 quick browse year listing:
refinement-state/test-fixtures/quick-browse-result.json - F048 quick browse storm listing:
refinement-state/test-fixtures/quick-browse-result.json - F049 quick browse storm file listing:
refinement-state/test-fixtures/quick-browse-result.json - F072 file copy error mapping and batch abort:
refinement-state/test-fixtures/file-copy-batch-result.json - F079 storm folder validation and rename exhaustion:
refinement-state/test-fixtures/storm-folder-errors-result.jsonandrefinement-state/test-fixtures/storm-folder-retry-result.json
Blocked Features
- F005, F006, F010-F027:
- BLOCKED by renderer launch failure.
npm run devandnpm startnever produced a usable UI surface, so main-window, first-run, navigation, publish view, drop zone, and renderer-only behavior could not be exercised as a human user.
- F029, F073-F077:
- BLOCKED by Node subprocess denial for git-backed flows.
- Evidence:
refinement-state/test-fixtures/node-spawn-probe.jsonshowsspawnSync git EPERM.
- F040, F078:
- BLOCKED by Node subprocess denial for PowerShell/Word COM flows.
- Evidence:
refinement-state/test-fixtures/node-spawn-probe.jsonshowsspawnSync powershell.exe EPERM.
Regressions
- No confirmed functional regressions beyond the already-blocking launch/build failures.
New Discoveries
- Probable publish logic defect in branch-switch scenario:
src/main/services/git/PublishService.ts:371-448- The service stashes a dirty non-target branch before checkout, but only stages requested publish files after switching branches. If the copied
.docxexists only on the original branch, it would be stashed away before staging on the target branch.
- The repo-level
tsc --noEmitcommand was misconfigured by the roottsconfig.jsonscope and produced 1086 false-scope errors before the compile-sweep fix. - The sandbox used for this cycle denies Node child-process execution for
git,powershell.exe,cmd.exe,esbuild.exe, andapp-builder.exe. That directly blocks renderer build, git publish, and Word COM automation in this environment.
Remaining Untested
- 28 lower-priority implemented features remain untested after the build/launch triage and the filesystem-only backend/API coverage above.
Verification Results (Post-Fix)
| Metric | Pre-Fix | Post-Fix | Delta |
|---|---|---|---|
| PASS | 15 | 21 | +6 |
| FAIL | 3 | 3 | 0 |
| BLOCKED | 28 | 21 | -7 |
| PARTIAL | 1 | 2 | +1 |
| REGRESSION | 0 | 0 | 0 |
| Health Score | 33% | 47% | +14 pts |
Fixes verified working
F003is partly fixed:npm run buildnow passes end-to-end and writes fresh renderer/main artifacts (refinement-state/verification-cycle-1-artifacts/npm-run-build.log), whilebuild:winstill reaches the externalapp-builder.exesandbox limit.F073-F078were re-verified with fresh targeted tests inrefinement-state/verification-cycle-1-artifacts/vitest-git-word.log.- Regression checks near modified code stayed green:
F007viarefinement-state/verification-cycle-1-artifacts/installer-config-check.json,F036-F038viarefinement-state/verification-cycle-1-artifacts/vitest-regression-sample.log, andF046-F049viarefinement-state/verification-cycle-1-artifacts/vitest-quick-browse-regression.log.
Not resolved
F001still fails before Vite/Electron become usable becauseconcurrentlythrowsspawn EPERM(refinement-state/verification-cycle-1-artifacts/npm-run-dev.log).F002still exits before a usable packaged window appears;refinement-state/verification-cycle-1-artifacts/npm-start-probe.jsonrecorded exit code1with no Electron process snapshot.F004remains partial:npm run typecheckandnpm run lintpass, but the first fullnpm testrun failed once intests/renderer/shadcn-smoke.test.tsxbefore the immediate rerun passed.F005still fails at integrated boot because the packaged launch path never reaches an observable app window, which keepsF006andF010-F027blocked for human validation.F029andF040remain environment-blocked here because fresh Node probes still returnspawnSync git EPERMandspawnSync powershell.exe EPERM.
Regressions introduced
- No confirmed end-user functional regressions were introduced by the fixes.
- New verification issue:
npm testis currently flaky at full-suite level.refinement-state/verification-cycle-1-artifacts/npm-test.logfailed once in the dialog focus-trap case, whilerefinement-state/verification-cycle-1-artifacts/npm-test-rerun.logpassed immediately afterward.
Remaining work
- Rework the
npm run devprocess fan-out so it does not depend on the blockedconcurrentlychild-process path in this sandbox. - Diagnose why
scripts/start-electron.ps1and the Electron child exit immediately with code1undernpm start. - Re-run
npm run build:winon a host that allowsapp-builder.exeto launch. - Stabilize the full-suite
tests/renderer/shadcn-smoke.test.tsxdialog focus-trap case sonpm testis reliable on first run.
Verification Results (Post-Fix)
Date: 2026-04-08 (re-test pass)
| Metric | Pre-Fix | Post-Fix | Delta |
|---|---|---|---|
| PASS | 15 | 22 | +7 |
| FAIL | 3 | 2 | -1 |
| BLOCKED | 28 | 21 | -7 |
| PARTIAL | 1 | 2 | +1 |
| REGRESSION | 0 | 0 | 0 |
| Health Score | 33% | 49% | +16 pts |
Fixes verified working
F004is now fully verified in this pass:npm run typecheck,npm run lint, and two consecutive fullnpm testruns passed (529tests each) with fresh evidence inrefinement-state/verification-cycle-1-retest-artifacts/.F002improved toPARTIAL:npm startrebuilt renderer/main and launchedelectron.exe, confirming the direct launcher path is active, but the wrapper still exited1before a usable window was observable.F073-F078were re-verified with fresh targeted tests inrefinement-state/verification-cycle-1-retest-artifacts/vitest-git-word.log.- Regression checks near modified code stayed green:
F007viarefinement-state/verification-cycle-1-retest-artifacts/installer-config-check.json,F036-F038viarefinement-state/verification-cycle-1-retest-artifacts/vitest-regression-sample.log, andF046-F049viarefinement-state/verification-cycle-1-retest-artifacts/vitest-quick-browse-regression.log.
Not resolved
F001still fails before Vite/Electron become usable becauseconcurrentlythrowsspawn EPERM(refinement-state/verification-cycle-1-retest-artifacts/npm-run-dev.log).F003remains partial:npm run buildpasses, butnpm run build:winstill fails atapp-builder.exe: spawn EPERM.F005still fails at integrated boot because the packaged launch path never reaches an observable app window, which keepsF006andF010-F027blocked for human validation.F029andF040remain environment-blocked here because fresh Node probes still returnspawnSync git EPERMandspawnSync powershell.exe EPERM.
Regressions introduced
- No confirmed end-user functional regressions were introduced by the fixes.
- The prior full-suite
npm testflake did not reproduce in this pass; both consecutive re-runs were green, so no new regression was introduced there.
Remaining work
- Rework the
npm run devprocess fan-out so it does not depend on the blockedconcurrentlychild-process path in this sandbox. - Diagnose why
scripts/start-electron.ps1launcheselectron.exebut the process still exits with code1before a usable titled window appears. - Re-run
npm run build:winon a host that allowsapp-builder.exeto launch. - Re-run live git publish and live Word COM creation on a host that allows Node child-process execution for
gitandpowershell.exe.
VERIFICATION_COMPLETE