test(updates): prove stable and dev installed upgrade isolation #11

Open
opened 2026-10-10 16:58:41 +00:00 by KofTwentyTwo · 9 comments
KofTwentyTwo commented 2026-10-10 16:58:41 +00:00 (Migrated from github.com)

Problem

Stable/prerelease tags map to stable/dev, but no installed starter app upgrade test has verified actual channel selection and update behavior.

Acceptance criteria

Exercise at least two versions per channel; verify same-channel upgrades and absence of cross-channel offers; record installer/update results and portable/F5 limits; retain automated tests where meaningful.

Scope

Starter Velopack packaging and AppKit updates.

This issue is part of the user-requested AppKit readiness remediation. Local work is not completion until the applicable published/runtime state and checks are verified. Substantial AI assistance: Codex.

## Problem Stable/prerelease tags map to stable/dev, but no installed starter app upgrade test has verified actual channel selection and update behavior. ## Acceptance criteria Exercise at least two versions per channel; verify same-channel upgrades and absence of cross-channel offers; record installer/update results and portable/F5 limits; retain automated tests where meaningful. ## Scope Starter Velopack packaging and AppKit updates. This issue is part of the user-requested AppKit readiness remediation. Local work is not completion until the applicable published/runtime state and checks are verified. Substantial AI assistance: Codex.
KofTwentyTwo commented 2026-10-10 20:57:40 +00:00 (Migrated from github.com)

Saved starter commit 90af2f75dfa8c713e9f604c1f1b844492139e73c locally (SSH-signed, DCO, hooks passed; not pushed).

The new Windows harness builds four real versions, uses a unique package ID and bounded directories, verifies portable/installed status, stable 0.1.0 -> 0.4.0 and dev 0.3.0-beta.1 -> beta.2, checks channel-specific feed requests, downloads/applies the actual package, confirms the WinUI restart and target app DLL hash, and uninstalls in finally. A fresh pre-byte-gate run demonstrated both upgrades and 19 passing UI tests (7 loose, 6 per installed channel). AppKit samples now call Velopack startup directly in signed local AppKit commit 8cbd3d1154169fcb04b4068e4b15c3d610af1eb1; both sample suites pass 14 tests.

Limits: the offline probe uses real Velopack/GithubSource with a fixture transport; only installed status/version come from the public AppKit service. Public GitHub transport and the AppKit UI check/apply path remain acceptance work. Subsequent payload audits found changed dependency bytes (#22), so the final harness now rejects packages before installation. A complete fresh run with all byte gates passing and hosted ci / installed-updates are still required. This issue remains open.

Saved starter commit `90af2f75dfa8c713e9f604c1f1b844492139e73c` locally (SSH-signed, DCO, hooks passed; not pushed). The new Windows harness builds four real versions, uses a unique package ID and bounded directories, verifies portable/installed status, stable 0.1.0 -> 0.4.0 and dev 0.3.0-beta.1 -> beta.2, checks channel-specific feed requests, downloads/applies the actual package, confirms the WinUI restart and target app DLL hash, and uninstalls in finally. A fresh pre-byte-gate run demonstrated both upgrades and 19 passing UI tests (7 loose, 6 per installed channel). AppKit samples now call Velopack startup directly in signed local AppKit commit `8cbd3d1154169fcb04b4068e4b15c3d610af1eb1`; both sample suites pass 14 tests. Limits: the offline probe uses real Velopack/GithubSource with a fixture transport; only installed status/version come from the public AppKit service. Public GitHub transport and the AppKit UI check/apply path remain acceptance work. Subsequent payload audits found changed dependency bytes (#22), so the final harness now rejects packages before installation. A complete fresh run with all byte gates passing and hosted `ci / installed-updates` are still required. This issue remains open.
KofTwentyTwo commented 2026-10-10 21:47:07 +00:00 (Migrated from github.com)

Committed locally: starter 2c8816b187b3a9a540f28daea20e0b1b061e8c5b on fix/template-onboarding. Six starter commits now; 21 signed/DCO commits total across AppKit, starter and shared builder. No pushes or new releases.

Verified GUI-only evidence: four actual self-contained publishes, 532 preserved files in each portable/full package, loose/portable checks, real stable 0.1.0 -> 0.4.0 and dev 0.3.0-beta.1 -> 0.3.0-beta.2 installs/upgrades, same-channel feeds, restart, target assembly SHA256 and 19 UI tests. Evidence remains in artifacts/starter-finish/artifacts/temp-stage-no-cli/artifacts/installed-temp-stage/.

CLI evidence: four single-file versions execute and all package byte checks pass; seven published UI checks and stable upgrade/restart pass. Two installed suites exposed different input timeouts, tracked in #23. Focused greeting tests (five) and the complete six-case sequence against the exact failed published 0.4.0 binary pass, without establishing the original cause. The candidate now focuses physical input and waits before clicking; its published seven UI cases pass. Its latest full attempt stopped on disk exhaustion while extracting portable assets, before any installation. Retained the failed runs; no test was skipped or timeout increased.

The smoke harness now parses source PE headers, copies only four probe files, isolates system-temp build/packer staging and refuses to start below 8 GB free on the artifact volume. Moved completed diagnostic fixtures to the approved cache without deleting them; workspace now has about 9.4 GB free. The candidate's complete CLI installed acceptance still needs a fresh run.

Current source validation: 31 Pester tests, changed-file PowerShell analysis, zero-warning UI-test build, scoped C# format, Markdown lint and commit hooks/signature verification pass. Source and prepared shared-builder worktrees are clean. AppKit head is 146138957506b79459a6d811a1e70a626e006699; shared head is 4dfde0976a59f3a2b07b974444e837574310c083.

Live AppKit UI updater/public hosting, signing, hosted CI and source/template rollout remain acceptance requirements. Keep this issue open. Substantial AI assistance: Codex (GPT-6).

Committed locally: starter `2c8816b187b3a9a540f28daea20e0b1b061e8c5b` on `fix/template-onboarding`. Six starter commits now; 21 signed/DCO commits total across AppKit, starter and shared builder. No pushes or new releases. Verified GUI-only evidence: four actual self-contained publishes, 532 preserved files in each portable/full package, loose/portable checks, real stable `0.1.0 -> 0.4.0` and dev `0.3.0-beta.1 -> 0.3.0-beta.2` installs/upgrades, same-channel feeds, restart, target assembly SHA256 and 19 UI tests. Evidence remains in `artifacts/starter-finish/artifacts/temp-stage-no-cli/artifacts/installed-temp-stage/`. CLI evidence: four single-file versions execute and all package byte checks pass; seven published UI checks and stable upgrade/restart pass. Two installed suites exposed different input timeouts, tracked in #23. Focused greeting tests (five) and the complete six-case sequence against the exact failed published 0.4.0 binary pass, without establishing the original cause. The candidate now focuses physical input and waits before clicking; its published seven UI cases pass. Its latest full attempt stopped on disk exhaustion while extracting portable assets, before any installation. Retained the failed runs; no test was skipped or timeout increased. The smoke harness now parses source PE headers, copies only four probe files, isolates system-temp build/packer staging and refuses to start below 8 GB free on the artifact volume. Moved completed diagnostic fixtures to the approved cache without deleting them; workspace now has about 9.4 GB free. The candidate's complete CLI installed acceptance still needs a fresh run. Current source validation: 31 Pester tests, changed-file PowerShell analysis, zero-warning UI-test build, scoped C# format, Markdown lint and commit hooks/signature verification pass. Source and prepared shared-builder worktrees are clean. AppKit head is `146138957506b79459a6d811a1e70a626e006699`; shared head is `4dfde0976a59f3a2b07b974444e837574310c083`. Live AppKit UI updater/public hosting, signing, hosted CI and source/template rollout remain acceptance requirements. Keep this issue open. Substantial AI assistance: Codex (GPT-6).
KofTwentyTwo commented 2026-10-10 21:59:15 +00:00 (Migrated from github.com)

The fresh CLI smoke from committed starter 2c8816b finished with a retained failure. All four version packages passed the 532-file portable/full archive byte comparison. The first published-output UI suite passed six tests and failed UnhandledException_IsLoggedAndTheAppSurvives: its physical crash-button click did not produce the expected log entry within the unchanged ten-second timeout; the app remained running.

Evidence: artifacts/starter-finish/artifacts/committed-with-cli/artifacts/installed-committed-focus/published-ui.trx, process-23.log, and build-directory.txt. The build directory is C:/Users/james/AppData/Local/Temp/k22-smoke-3a4c3ce1642e4ec5997b9dcafe592921. This run stopped before installed stable/dev tests. Earlier installed upgrade successes and the complete GUI-only smoke remain separate evidence; this attempt does not prove current CLI acceptance.

The committed foreground/focus/input-processing candidate did not eliminate the failure. No cause is established, timeout increased, failed check skipped, or extra retries used to turn this run into a pass. The problem now also reproduces against a published loose executable, so it is not confined to installed output. Keep #23, #11 and the readiness acceptance open. No signing or publication was involved.

The fresh CLI smoke from committed starter `2c8816b` finished with a retained failure. All four version packages passed the 532-file portable/full archive byte comparison. The first published-output UI suite passed six tests and failed `UnhandledException_IsLoggedAndTheAppSurvives`: its physical crash-button click did not produce the expected log entry within the unchanged ten-second timeout; the app remained running. Evidence: `artifacts/starter-finish/artifacts/committed-with-cli/artifacts/installed-committed-focus/published-ui.trx`, `process-23.log`, and `build-directory.txt`. The build directory is `C:/Users/james/AppData/Local/Temp/k22-smoke-3a4c3ce1642e4ec5997b9dcafe592921`. This run stopped before installed stable/dev tests. Earlier installed upgrade successes and the complete GUI-only smoke remain separate evidence; this attempt does not prove current CLI acceptance. The committed foreground/focus/input-processing candidate did not eliminate the failure. No cause is established, timeout increased, failed check skipped, or extra retries used to turn this run into a pass. The problem now also reproduces against a published loose executable, so it is not confined to installed output. Keep #23, #11 and the readiness acceptance open. No signing or publication was involved.
KofTwentyTwo commented 2026-10-10 22:24:48 +00:00 (Migrated from github.com)

Fresh committed-template CLI attempt df40b60 completed all four 532-file portable/full byte comparisons, CLI executions, both installed stable/dev upgrades/restarts, channel isolation and exact target assembly checks. Published UI passed 7/7; installed stable passed 6/6; installed dev passed 5/6, failing the theme-save check with app alive. Guarded cleanup completed. Retain the failure; full harness exit was failure, not success.

Evidence: artifacts/starter-finish/artifacts/guarded-with-cli/artifacts/installed-guarded/, including published-ui.trx, installed-stable-ui.trx, installed-dev-ui.trx, stable-after.json, dev-after.json, process-34.log and build-directory.txt. AppKit reported installed versions 0.4.0/stable and 0.3.0-beta.2/dev; only each channel's feed was requested.

Starter menu/control input was missing the foundation sample's existing foreground step. Signed local commit 7eef2a489cb8a1924cb46f4c08e2593a532d930d aligns those paths, applies the observed point-ownership guard to every physical fallback, and captures invocation kind/settings/logs for theme failures. Product code and timeouts remain unchanged.

Three focused theme checks and all six feature checks passed on the exact failed dev publish payload. These are clearly identified same-identity diagnostic tests, not a fresh complete installed acceptance run. Evidence: sibling artifacts/input-diagnostics/theme-foreground-{1,2,3}.trx and dev-feature-foreground.trx. Source and diagnostic zero-warning builds, formatting, hooks and Markdown passed. The earlier crash occlusion trace remains separate evidence; this does not prove every prior failure had the same cause.

Keep #23/#11/#20 open for a complete current packed-template CLI/GUI-only run and hosted acceptance. Current R: capacity is below the 8 GB start gate after retaining fixtures; preserve evidence in the approved cache before launching another full run. No signing or publication occurred.

Fresh committed-template CLI attempt `df40b60` completed all four 532-file portable/full byte comparisons, CLI executions, both installed stable/dev upgrades/restarts, channel isolation and exact target assembly checks. Published UI passed 7/7; installed stable passed 6/6; installed dev passed 5/6, failing the theme-save check with app alive. Guarded cleanup completed. Retain the failure; full harness exit was failure, not success. Evidence: `artifacts/starter-finish/artifacts/guarded-with-cli/artifacts/installed-guarded/`, including `published-ui.trx`, `installed-stable-ui.trx`, `installed-dev-ui.trx`, `stable-after.json`, `dev-after.json`, `process-34.log` and `build-directory.txt`. AppKit reported installed versions 0.4.0/stable and 0.3.0-beta.2/dev; only each channel's feed was requested. Starter menu/control input was missing the foundation sample's existing foreground step. Signed local commit `7eef2a489cb8a1924cb46f4c08e2593a532d930d` aligns those paths, applies the observed point-ownership guard to every physical fallback, and captures invocation kind/settings/logs for theme failures. Product code and timeouts remain unchanged. Three focused theme checks and all six feature checks passed on the exact failed dev publish payload. These are clearly identified same-identity diagnostic tests, not a fresh complete installed acceptance run. Evidence: sibling `artifacts/input-diagnostics/theme-foreground-{1,2,3}.trx` and `dev-feature-foreground.trx`. Source and diagnostic zero-warning builds, formatting, hooks and Markdown passed. The earlier crash occlusion trace remains separate evidence; this does not prove every prior failure had the same cause. Keep #23/#11/#20 open for a complete current packed-template CLI/GUI-only run and hosted acceptance. Current R: capacity is below the 8 GB start gate after retaining fixtures; preserve evidence in the approved cache before launching another full run. No signing or publication occurred.
KofTwentyTwo commented 2026-10-10 22:33:34 +00:00 (Migrated from github.com)

Fresh actual packed-template acceptance from signed starter commit 7eef2a489cb8a1924cb46f4c08e2593a532d930d completed successfully. Published UI passed 7/7, installed stable 6/6, installed dev 6/6: 19 checks, zero failures/skips. All four 532-file portable/full payload comparisons passed before runtime acceptance. Stable 0.1.0 -> 0.4.0 and dev 0.3.0-beta.1 -> beta.2 downloaded, applied, restarted and passed installed version/target hash/channel isolation checks. Guarded uninstalls completed.

Evidence: artifacts/starter-finish/artifacts/foreground-with-cli/artifacts/installed-foreground/: results.json, published-ui.trx, installed-stable-ui.trx, installed-dev-ui.trx, stable-after.json, dev-after.json, and build-directory.txt. This is generated from the committed package, not manually synchronized diagnostic files. Earlier failing runs remain retained.

The harness uses real Velopack installed upgrades with an offline GitHub transport. It does not prove live public feeds, the AppKit UI check/apply flow, production signatures, deltas or hosted CI. Current-head GUI-only acceptance is next; no test process remains live. Keep the applicable remaining criteria open. No push, PR, merge, new release, settings change or Azure login retry occurred. Twenty-eight signed local commits remain prepared across AppKit, starter and shared signing.

Fresh actual packed-template acceptance from signed starter commit `7eef2a489cb8a1924cb46f4c08e2593a532d930d` completed successfully. Published UI passed 7/7, installed stable 6/6, installed dev 6/6: 19 checks, zero failures/skips. All four 532-file portable/full payload comparisons passed before runtime acceptance. Stable `0.1.0 -> 0.4.0` and dev `0.3.0-beta.1 -> beta.2` downloaded, applied, restarted and passed installed version/target hash/channel isolation checks. Guarded uninstalls completed. Evidence: `artifacts/starter-finish/artifacts/foreground-with-cli/artifacts/installed-foreground/`: `results.json`, `published-ui.trx`, `installed-stable-ui.trx`, `installed-dev-ui.trx`, `stable-after.json`, `dev-after.json`, and `build-directory.txt`. This is generated from the committed package, not manually synchronized diagnostic files. Earlier failing runs remain retained. The harness uses real Velopack installed upgrades with an offline GitHub transport. It does not prove live public feeds, the AppKit UI check/apply flow, production signatures, deltas or hosted CI. Current-head GUI-only acceptance is next; no test process remains live. Keep the applicable remaining criteria open. No push, PR, merge, new release, settings change or Azure login retry occurred. Twenty-eight signed local commits remain prepared across AppKit, starter and shared signing.
KofTwentyTwo commented 2026-10-10 22:48:06 +00:00 (Migrated from github.com)

Both actual packed-template variants from signed starter head 7eef2a489cb8a1924cb46f4c08e2593a532d930d now complete the installed smoke: CLI 19/19 UI checks and GUI-only 19/19, all four 532-file portable/full comparisons per variant, stable 0.1.0 -> 0.4.0 and dev 0.3.0-beta.1 -> beta.2 real downloads/apply/restarts, exact installed version/target hashes and no cross-channel requests/offers. Guarded cleanup completed.

Current GUI-only evidence: C:/Users/james/.cache/AppKit-acceptance/2026-10-10/foreground-no-cli/artifacts/installed-reserved-desktop/{results.json,published-ui.trx,installed-stable-ui.trx,installed-dev-ui.trx,stable-after.json,dev-after.json,build-directory.txt}. Current CLI evidence remains in artifacts/starter-finish/artifacts/foreground-with-cli/artifacts/installed-foreground/.

The first current GUI attempt is retained in sibling installed-foreground/: published UI 6/7, crash-log timeout, app alive. Its trace owned the target before clicking but afterward reported a distant pointer position over a gclo process. The owner then reserved the desktop; the unchanged fixture passed the complete run. This supports desktop input interference for that observed failure, without proving every earlier timeout had the same cause. Completed older guarded-with-cli evidence moved intact to C:/Users/james/.cache/AppKit-retained-fixtures/2026-10-10/guarded-with-cli with all seven TRX reports; no evidence deleted.

Foundation AppKit bbf7efd freshly passes locked restore, zero-warning full build, format verification, 161 unit tests/100% core-update coverage, 14 WinUI/WPF UI tests, seven review-validator tests and ESLint. Current exact-commit review and rollout packets are prepared. Two additional signed shared-rollout commits (helper 3334d02, builder 5887a83) start from published standards v1.0.0; 35 tests and workflow/docs/hooks pass. Thirty signed local preparation commits total; original checkouts are preserved.

Remaining criteria stay open: actual hosted gates/review bootstrap, public starter/package/feed rollout, AppKit's live check/apply integration, final Azure identity/role/resource/signature proof, owner badge attestations and age reassessment. Offline GitHub transport is not hosted or signing evidence. No push, PR, merge, new release, live settings change or Azure retry occurred.

Both actual packed-template variants from signed starter head `7eef2a489cb8a1924cb46f4c08e2593a532d930d` now complete the installed smoke: CLI 19/19 UI checks and GUI-only 19/19, all four 532-file portable/full comparisons per variant, stable `0.1.0 -> 0.4.0` and dev `0.3.0-beta.1 -> beta.2` real downloads/apply/restarts, exact installed version/target hashes and no cross-channel requests/offers. Guarded cleanup completed. Current GUI-only evidence: `C:/Users/james/.cache/AppKit-acceptance/2026-10-10/foreground-no-cli/artifacts/installed-reserved-desktop/{results.json,published-ui.trx,installed-stable-ui.trx,installed-dev-ui.trx,stable-after.json,dev-after.json,build-directory.txt}`. Current CLI evidence remains in `artifacts/starter-finish/artifacts/foreground-with-cli/artifacts/installed-foreground/`. The first current GUI attempt is retained in sibling `installed-foreground/`: published UI 6/7, crash-log timeout, app alive. Its trace owned the target before clicking but afterward reported a distant pointer position over a gclo process. The owner then reserved the desktop; the unchanged fixture passed the complete run. This supports desktop input interference for that observed failure, without proving every earlier timeout had the same cause. Completed older guarded-with-cli evidence moved intact to `C:/Users/james/.cache/AppKit-retained-fixtures/2026-10-10/guarded-with-cli` with all seven TRX reports; no evidence deleted. Foundation AppKit `bbf7efd` freshly passes locked restore, zero-warning full build, format verification, 161 unit tests/100% core-update coverage, 14 WinUI/WPF UI tests, seven review-validator tests and ESLint. Current exact-commit review and rollout packets are prepared. Two additional signed shared-rollout commits (helper `3334d02`, builder `5887a83`) start from published standards v1.0.0; 35 tests and workflow/docs/hooks pass. Thirty signed local preparation commits total; original checkouts are preserved. Remaining criteria stay open: actual hosted gates/review bootstrap, public starter/package/feed rollout, AppKit's live check/apply integration, final Azure identity/role/resource/signature proof, owner badge attestations and age reassessment. Offline GitHub transport is not hosted or signing evidence. No push, PR, merge, new release, live settings change or Azure retry occurred.
KofTwentyTwo commented 2026-10-10 23:23:00 +00:00 (Migrated from github.com)

Progress at signed starter commit c2b7b8c8c2c1e5007079907ca3c4f50735f52576:

  • The installed probe now calls the shipped AppKit 0.1.0 public CheckAsync and DownloadAndApplyAsync methods. Previously it called Velopack directly for those operations.
  • Only the HTTP downloader is replaced in test code. The actual AppKit backend, Velopack manager/locator, installed channel and entry-assembly prerelease selection remain intact. The pinned private-symbol adapter fails closed if attachment fails; no production API change or network fallback.
  • Evidence records public check errors, apply calls and target asset requests before apply exits. Existing target-manifest, exact application SHA256, restarted-window, byte-preservation and UI requirements remain enforced.
  • Source and both actual packed/renamed CLI and GUI-only probes build with zero warnings and produce the correct unsupported loose-build result with zero network requests. Probe format verification, harness full-rule analysis and 41/41 starter script tests pass. Signed/DCO commit hooks pass.
  • Fresh CLI full installed acceptance is running on the owner-reserved desktop; GUI-only acceptance follows sequentially. These results are pending. Existing complete tests exercised the earlier Velopack-direct probe and do not establish this new public AppKit path.

No closure or production-signing/public-feed claim. AppKit draft #25 still passes all hosted checks except uri-js license policy; shared drafts #31/#32 pass their applicable checks. Azure access remains deferred and no merge/publication/settings change is authorized.

Progress at signed starter commit c2b7b8c8c2c1e5007079907ca3c4f50735f52576: - The installed probe now calls the shipped AppKit 0.1.0 public `CheckAsync` and `DownloadAndApplyAsync` methods. Previously it called Velopack directly for those operations. - Only the HTTP downloader is replaced in test code. The actual AppKit backend, Velopack manager/locator, installed channel and entry-assembly prerelease selection remain intact. The pinned private-symbol adapter fails closed if attachment fails; no production API change or network fallback. - Evidence records public check errors, apply calls and target asset requests before apply exits. Existing target-manifest, exact application SHA256, restarted-window, byte-preservation and UI requirements remain enforced. - Source and both actual packed/renamed CLI and GUI-only probes build with zero warnings and produce the correct unsupported loose-build result with zero network requests. Probe format verification, harness full-rule analysis and 41/41 starter script tests pass. Signed/DCO commit hooks pass. - Fresh CLI full installed acceptance is running on the owner-reserved desktop; GUI-only acceptance follows sequentially. These results are pending. Existing complete tests exercised the earlier Velopack-direct probe and do not establish this new public AppKit path. No closure or production-signing/public-feed claim. AppKit draft #25 still passes all hosted checks except uri-js license policy; shared drafts #31/#32 pass their applicable checks. Azure access remains deferred and no merge/publication/settings change is authorized.
KofTwentyTwo commented 2026-10-10 23:28:05 +00:00 (Migrated from github.com)

Follow-up at signed starter commit e93f7ca9a5602355b5ac37d02313326f10227109:

The first fresh CLI acceptance stopped before installation because the harness required a space after the version, accidentally requiring SourceLink metadata. The valid output outside a Git checkout was Public API true 0.1.0. Fixed the assertion to require the complete version token at line end with optional parenthesized metadata. The old assertion fails the retained no-metadata regression; the fixed suite passes 46/46 with zero failures/skips. Incorrect/extended version tokens still fail. Original failed fixture/logs remain retained; a fresh final CLI template is generated for sequential acceptance after the GUI run.

Analyzer limitation: captured an actual PSScriptAnalyzer 1.25.0 / PowerShell 7.6.6 exception in CommandInfo.get_Parameters called by UseCorrectCasing.AnalyzeScript. The pinned upstream rule source has a runspace-affinity fallback for InvalidOperationException; our captured exception is NullReferenceException. This narrows the failure but does not establish its complete cause or a cure. Pre-initializing command metadata did not prevent it. Failed diagnostic processes were scoped and stopped; no CI retry, disabled rule or suppressed error. The initial public-probe harness analysis passed before this follow-up; current changed-script full-rule analysis remains unverified because of the engine crash.

GUI-only acceptance is running on the reserved desktop and has passed the first three 532-file portable/full byte gates. Public AppKit installed check/apply outcomes and final UI results remain pending. No issue closure, merge, release, Azure retry or live setting change.

Follow-up at signed starter commit e93f7ca9a5602355b5ac37d02313326f10227109: The first fresh CLI acceptance stopped before installation because the harness required a space after the version, accidentally requiring SourceLink metadata. The valid output outside a Git checkout was `Public API true 0.1.0`. Fixed the assertion to require the complete version token at line end with optional parenthesized metadata. The old assertion fails the retained no-metadata regression; the fixed suite passes 46/46 with zero failures/skips. Incorrect/extended version tokens still fail. Original failed fixture/logs remain retained; a fresh final CLI template is generated for sequential acceptance after the GUI run. Analyzer limitation: captured an actual PSScriptAnalyzer 1.25.0 / PowerShell 7.6.6 exception in `CommandInfo.get_Parameters` called by `UseCorrectCasing.AnalyzeScript`. The pinned [upstream rule source](https://github.com/PowerShell/PSScriptAnalyzer/blob/1.25.0/Rules/UseCorrectCasing.cs) has a runspace-affinity fallback for InvalidOperationException; our captured exception is NullReferenceException. This narrows the failure but does not establish its complete cause or a cure. Pre-initializing command metadata did not prevent it. Failed diagnostic processes were scoped and stopped; no CI retry, disabled rule or suppressed error. The initial public-probe harness analysis passed before this follow-up; current changed-script full-rule analysis remains unverified because of the engine crash. GUI-only acceptance is running on the reserved desktop and has passed the first three 532-file portable/full byte gates. Public AppKit installed check/apply outcomes and final UI results remain pending. No issue closure, merge, release, Azure retry or live setting change.
KofTwentyTwo commented 2026-10-10 23:34:51 +00:00 (Migrated from github.com)

Completed fresh public AppKit installed acceptance for both actual packed template variants:

Variant Published UI Installed stable UI Installed dev UI Updates
GUI-only 7/7 6/6 6/6 AppKit stable 0.1.0 -> 0.4.0; dev beta.1 -> beta.2
CLI 7/7 6/6 6/6 AppKit stable 0.1.0 -> 0.4.0; dev beta.1 -> beta.2

The real shipped AppKit 0.1.0 public CheckAsync and DownloadAndApplyAsync drive these upgrades. Only offline transport is injected; actual backend/manager/locator/channel selection remains intact. Both results record successful public checks, apply calls, the target full-package URL, exact installed application SHA256, target manifest, a restarted window, and no remaining update offer. Stable/dev requests stay isolated. Both portable and full archives preserve all 532 original non-PDB publish files for each of four versions. Loose-build rejection and portable behavior pass. Both installations and each unique uninstall registry entry are confirmed removed.

Retained evidence is in ~/.cache/AppKit-acceptance/2026-10-10/{public-api-false,public-api-final-cli}/artifacts/installed-public-appkit: results.json, three passing TRX files each, channel before/after JSON, installer/process logs and package byte evidence. GUI runtime source is c2b7b8c; CLI uses e93f7ca. Current signed starter head 49df4902d91d8e4c5e8f29cce9b4f6a2ba5c1a74 adds only the updated acceptance guide after those runtime tests. Source and final packed/renamed CLI script suites pass 46/46. Original metadata-free CLI failure and regression evidence remain retained.

Desktop reservation has ended. No build/test process remains intentionally active.

Remaining limits: this proves offline public AppKit service integration, not a public GitHub release feed, interactive update-dialog check/apply, hosted starter CI, production Authenticode signing, deltas or non-x64 runtimes. No broad issue closure or complete compliance claim.

The analyzer exception is now matched to the still-open upstream PSScriptAnalyzer #1708. Latest published release is still 1.25.0. Current follow-up script analysis remains unverified; no error suppression, disabled rule or retry gate was introduced. AppKit #25 remains green except the enforced license policy; standards #31/#32 are green, and EX-0009 remains Proposed. Azure retry stays deferred; no merge/publication/settings/Azure change.

Completed fresh public AppKit installed acceptance for both actual packed template variants: | Variant | Published UI | Installed stable UI | Installed dev UI | Updates | | --- | --- | --- | --- | --- | | GUI-only | 7/7 | 6/6 | 6/6 | AppKit stable 0.1.0 -> 0.4.0; dev beta.1 -> beta.2 | | CLI | 7/7 | 6/6 | 6/6 | AppKit stable 0.1.0 -> 0.4.0; dev beta.1 -> beta.2 | The real shipped AppKit 0.1.0 public `CheckAsync` and `DownloadAndApplyAsync` drive these upgrades. Only offline transport is injected; actual backend/manager/locator/channel selection remains intact. Both results record successful public checks, apply calls, the target full-package URL, exact installed application SHA256, target manifest, a restarted window, and no remaining update offer. Stable/dev requests stay isolated. Both portable and full archives preserve all 532 original non-PDB publish files for each of four versions. Loose-build rejection and portable behavior pass. Both installations and each unique uninstall registry entry are confirmed removed. Retained evidence is in `~/.cache/AppKit-acceptance/2026-10-10/{public-api-false,public-api-final-cli}/artifacts/installed-public-appkit`: results.json, three passing TRX files each, channel before/after JSON, installer/process logs and package byte evidence. GUI runtime source is c2b7b8c; CLI uses e93f7ca. Current signed starter head 49df4902d91d8e4c5e8f29cce9b4f6a2ba5c1a74 adds only the updated acceptance guide after those runtime tests. Source and final packed/renamed CLI script suites pass 46/46. Original metadata-free CLI failure and regression evidence remain retained. Desktop reservation has ended. No build/test process remains intentionally active. Remaining limits: this proves offline public AppKit service integration, not a public GitHub release feed, interactive update-dialog check/apply, hosted starter CI, production Authenticode signing, deltas or non-x64 runtimes. No broad issue closure or complete compliance claim. The analyzer exception is now matched to the still-open upstream [PSScriptAnalyzer #1708](https://github.com/PowerShell/PSScriptAnalyzer/issues/1708). Latest published release is still 1.25.0. Current follow-up script analysis remains unverified; no error suppression, disabled rule or retry gate was introduced. AppKit #25 remains green except the enforced license policy; standards #31/#32 are green, and EX-0009 remains Proposed. Azure retry stays deferred; no merge/publication/settings/Azure change.
Sign in to join this conversation.