Repository navigation
Batch 20260917: security hardening, safe legacy migration, diagnostics, installer lifecycle - #14
Merged
Merged
Conversation
…ics, installer report/smoke
Raise SettingsError instead of silently initializing fresh auth settings when a legacy file remains and the destination is missing. Preserve the same non-destructive rule for network settings with an explicit warning. Claude-Session: https://claude.ai/code/session_012Wt8ZEQeC9WJFrTQaieQJH
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Security hardening, non-destructive legacy migration, read-only diagnostics, and an installer lifecycle report/smoke harness for PC Remote. Based on
main@d728079.1. Security review (confirmed defects only)
check,change_password) skipped the login attempt budget_verify_legacy_pin(lock around admission/verify/accounting). Token auth is unaffected.proxy_headers=Falseon this direct-LAN server.Documented, not “fixed” (by design): trusted-LAN plain HTTP, 4-digit PIN entropy, broad authenticated desktop control.
SECURITY.md— policy + runtime residual risksdocs/SECURITY_REVIEW.md— boundary table + evidencetests/test_security_contract.py2. Unified safe migration layer
migration.safe_migrateis now the single owner of legacy network/settings/autostart moves.SettingsError(no silent fresh PIN reset)newline="")auth.py/net_utils.py/autostart.pynow call into this layer instead of three divergent copies.3. Legacy branch disposition
BRANCH_MIGRATION_REPORT.mdcompares 12 topic refs against pinnedmain(d728079):agent/windows-installer-*tips already containedfix/preserve-legacy-*behavior carried via the migration owner, not by merging the branches4. Read-only diagnostics
python main.py --diagnosticsJSON: version, bind address/port, autostart state, firewall summary, config path, last-error category. No PINs, hashes, tokens, settings contents, or raw log text. Runs before GUI/logging/auth/settings init.
5. Installer smoke matrix (harness ready, lifecycle not run here)
disabled/owned/foreignTesting
--diagnosticsrun with tempAPPDATA(settings bytes unchanged, no log created)Changed files (20)
Code:
main.py,auth.py,net_utils.py,autostart.py,migration.py,diagnostics.py,installer/PC-Remote.iss,scripts/installer_smoke.ps1Docs:
SECURITY.md,BRANCH_MIGRATION_REPORT.md,docs/SECURITY_REVIEW.md,docs/diagnostics.md,docs/installer-smoke.md,docs/PROJECT_BATCH_CHECKLIST.mdTests:
test_security_contract.py,test_migration.py,test_diagnostics.py,test_installer_contract.py,test_installer_smoke.py,conftest_helpers.pyCommits
caf5b79— batch: security hardening, safe migration, diagnostics, installer report/smoke9043fbc— migration: fail closed when leftover legacy settings cannot moveReview order
9043fbc— small fail-closed migration fix (auth/net_utils+ 3 tests)caf5b79— remaining batch (security + migration core + diagnostics + installer)docs/PROJECT_BATCH_CHECKLIST.md→docs/SECURITY_REVIEW.md→BRANCH_MIGRATION_REPORT.md→docs/installer-smoke.md→ code/testsBlocked / residual risks
dist/PC Remote/PC Remote.exe, no disposable VM authorized here. Static/gate tests are not lifecycle proof.Do not mark install acceptance until the disposable-VM matrix in
docs/installer-smoke.mdhas been run.