Skip to content

feat: block validate/install until FOMOD archives are configured#170

Open
bodencrouch wants to merge 11 commits into
masterfrom
feat/fomod-configuration-gate
Open

feat: block validate/install until FOMOD archives are configured#170
bodencrouch wants to merge 11 commits into
masterfrom
feat/fomod-configuration-gate

Conversation

@bodencrouch

Copy link
Copy Markdown
Owner

Summary

  • Add FomodConfigurationGate — only configured FOMOD prompt status passes; dismissed, warned, and unset all fail.
  • Wire the gate into the shared validation pipeline (CLI + GUI Getting Started + wizard Validate), install start page, and InstallationService install safety net.
  • Extend Plan 123 requirements (R16–R21) and docs/knowledgebase/fomod-support.md.

Context

Follow-up to merged #169. Post-download dismiss/skip/warn paths remain for download-time flow only; validate/install now hard-block until the FOMOD wizard completes.

Test plan

  • FomodConfigurationGateTests (6 tests)
  • All FullyQualifiedName~Fomod tests locally (63 passed)
  • CI green on this PR
  • Desktop: skip FOMOD post-download → Run Validation fails; complete wizard → passes

Copilot added 3 commits June 13, 2026 07:48
Add a configured-only gate across the shared validation pipeline, CLI/GUI
install paths, and wizard install start so dismissed, warned, or skipped
post-download states cannot proceed without completing the FOMOD wizard.
…mod dir

Wire InstallSingleComponentAsync and fail closed when the mod directory is
absent; harden duplicate-Guid expansion and agent-facing recovery hints.
Distinguish enumerate failure from non-FOMOD so probe-miss cannot bypass
the configured-only validate/install gate (R22).
@bodencrouch

Copy link
Copy Markdown
Owner Author

PR split scrub (no force-push): Remote head for this PR remains the intended FOMOD-only tip (b09a4e7e and the two prior gate commits).

Locally, paste/vision/page-0/headless commits that had been sitting ahead of this branch were not dropped — they were pointed at feat/guide-paste-ingestion (653c7771). Release inventory docs live on docs/release-gap-inventory. Protocol Phase 1 stays off this PR (feat/modsync-protocol-handler / stashes).

Full ownership table and recommended next PRs: docs/plans/2026-07-13-006-pr-split-plan.md (on docs/release-gap-inventory).

Please keep reviewing #170 as FOMOD gate only; do not expect paste/protocol in this diff.

Copilot added 8 commits July 13, 2026 11:29
…artPage

Cover pipeline pass/fail, InstallationService block when unconfigured, and
headless InstallStartPage ValidateAsync for configured vs unconfigured FOMOD.
DateTimeStyles.None turned ISO-8601 Z timestamps into local Kind (-05:00),
breaking SerializationRoundTripTests JSON equality. Serialize/parse as UTC
and leave FirstSeen unset during ModLink migration (cache owns that field).
Re-prompt dismissed FOMOD archives on Fetch Downloads, merge Mod Management wizard output into the selected mod, match nested registry basenames for prompt status, and normalize backslash paths when replacing prior FOMOD instructions.
Correct Mod Management dialog message escapes and use verbatim paths in the backslash reconfigure merger test so the project builds.
…ning managed-deploy work

Progress totals no longer inflate when environment/archive stages are skipped.
Refresh validation-pipeline KB for FomodConfiguration fail-closed, add stage UI coverage tests, and capture Phase 4 remaining units in plan 004.
Warn when configured lacks archive-scoped instructions; fail-closed on missing archives with prior FOMOD status; document warned skip behavior; cover dismiss→configure recovery and nested/backslash merger cases.
…gistry

Stop filling empty Heading from ###/Name on markdown round-trip, skip
PascalCasing URL registry keys (Https→https), rewrite ResourceRegistry as
Url-entry arrays for XML, and normalize List<object> instruction paths so
XML/TOML separators stay consistent.
@github-actions

Copy link
Copy Markdown
Contributor

Code Style Check Failed

This PR has code style issues that need to be fixed. Please run the code cleanup script locally:

Windows:

.\cleanup-code.ps1 -Fix

Linux/macOS:

./cleanup-code.sh --fix

For more information, see the Code Style Guidelines.

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.

1 participant