diff --git a/AGENTS.md b/AGENTS.md index 27ad3f7..b45e08a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,7 +4,7 @@ `UnrealHyperTwist/` is the live application root. Treat `UnrealHyperTwist/Source/UnrealHyperTwist/` as the primary first-party code surface and `UnrealHyperTwist/Config/` plus `Content/` as the active project shell. `UnrealHyperTwist/Plugins/UnrealMCPChong/` is the only maintained in-repo plugin fork; the other plugin folders are external copies and should stay untouched unless a plugin task explicitly names them. `docs/` contains working documentation, while `docs/refs/` is reference-only and may contain sensitive ops material. `mirrors/`, `zippedreposource/`, and the archived content folders at repo root are custody/reference storage, not the default edit target. ## Build, Test, and Development Commands -Open `UnrealHyperTwist/UnrealHyperTwist.uproject` or `UnrealHyperTwist/UnrealHyperTwist.sln` in Visual Studio 2022 / Unreal Engine 5.7 for normal work. Use `git -C C:\HyperTwist status --short` before and after changes. The bootstrap CI check is defined in `.woodpecker/hypertwist-bootstrap.yml` and validates the presence of the Unreal project, source module root, and docs tree. +Open `UnrealHyperTwist/UnrealHyperTwist.uproject` in Visual Studio 2022 / Unreal Engine 5.7 for normal work. A host-generated `UnrealHyperTwist/UnrealHyperTwist.sln` may be used while present, but it is disposable IDE state rather than repository authority. Use `git -C C:\HyperTwist status --short` before and after changes. The bootstrap CI check is defined in `.woodpecker/hypertwist-bootstrap.yml` and validates the presence of the Unreal project, source module root, and docs tree. For Unreal C++ validation, the canonical Windows build command is: @@ -111,3 +111,9 @@ Operational rule: - if those safety conditions are not met, the older hard stop still governs and future instances must not fabricate the answer - when stopping at a live prepared decision boundary, future instances should state whether plain `continue` is allowed to adopt the displayed recommendation or whether explicit user selection is still required - HyperTwist-specific build-validation and remote-host safeguards remain higher authority where applicable + +## Update - 2026-07-19 - Overnight Mode safe adjacent queue behavior + +When `Overnight Mode`, `Continuity Mode`, stacked `continue`, or plain `c` is active, do not halt merely because a closeout lists several routine safe adjacent options. If the options are same-lane or same-boundary, low-ambiguity, non-destructive, lawful, and logically orderable, treat them as a safe adjacent execution queue. Pick the most complete professional order, execute the strongest branch first, then continue through the next adjacent branch while it remains safe and closure-improving. + +Future instances must still stop for real boundaries: unresolved quiz/user value judgment, fresh donor-family selection without authority-backed winner, legal clean-room vs direct implementation uncertainty, destructive filesystem/mirror movement, external publication/provider mutation, missing credentials, or validation/packaging failure that changes the plan. Closeouts should name a recommended/default branch and a safe adjacent queue rather than forcing the operator to approve obvious housekeeping, evidence, packaging, documentation, reassessment, or same-lane closeout steps one by one. diff --git a/docs/generated/alpha_test_20260726_installer/README.md b/docs/generated/alpha_test_20260726_installer/README.md index 5cd0b81..83ed7db 100644 --- a/docs/generated/alpha_test_20260726_installer/README.md +++ b/docs/generated/alpha_test_20260726_installer/README.md @@ -108,6 +108,8 @@ validation. - `makensis.log`: final compiler transcript - `pre-release-shortcut-failure-report.json`: superseded failure lineage - `post-task-hygiene-report.json`: doctrine-ordered artifact disposition +- `post-task-hygiene-reconciliation-report.json`: duplicate proof and final + retirement of the formerly protected Windows staging roots ## Remaining External Gates @@ -117,3 +119,23 @@ validation. - update-channel, rollback, and staged-rollout proof - real headset/controller observation - configured-provider, microphone, and audible-TTS observation + +## Staging Retirement + +The initial hygiene report conservatively retained +`C:\HyperTwist_worktrees\phase10validate` and the package-production roots +because complete duplicate proof had not yet cleared four relative symlinks. +The additive reconciliation report closes that uncertainty. + +The follow-up compared `19,789` regular snapshot files, isolated all `4` +symlinks, matched `19,723` files byte-for-byte against the current VPS source, +matched another `28` changed tracked files to committed history, and proved the +remaining tracked differences were strictly superseded. No unique unlanded +source was found. + +The current Release 19 package then matched the retained Downloads delivery for +all `145` package files and `1,920,300,068` bytes. The staging ZIP and installer +also matched their retained Downloads copies exactly. This made every artifact +under `C:\HyperTwist_worktrees` redundant, so the whole staging root was +removed while the Release 19 operator deliveries, Release 17 rollback +deliveries, and operator saved data were retained. diff --git a/docs/generated/alpha_test_20260726_installer/post-task-hygiene-reconciliation-report.json b/docs/generated/alpha_test_20260726_installer/post-task-hygiene-reconciliation-report.json new file mode 100644 index 0000000..052cf87 --- /dev/null +++ b/docs/generated/alpha_test_20260726_installer/post-task-hygiene-reconciliation-report.json @@ -0,0 +1,118 @@ +{ + "reportVersion": "ht-post-task-hygiene-reconciliation/v1", + "generatedAtUtc": "2026-07-26T10:17:32Z", + "doctrine": "docs/ops/HYPERTWIST_PACKET_CLEANUP_AND_REBUILDABLE_ARTIFACT_HYGIENE_2026-05-20.md", + "reconciles": "docs/generated/alpha_test_20260726_installer/post-task-hygiene-report.json", + "result": "passed-clean-with-protected-authority", + "sourceSnapshotProof": { + "path": "C:\\HyperTwist_worktrees\\phase10validate", + "regularFilesCompared": 19789, + "relativeSymlinksInspected": 4, + "byteIdenticalCurrentFiles": 19723, + "byteIdenticalCurrentBytes": 2236011229, + "differentFiles": 40, + "missingByExactLinuxPath": 26, + "differentTrackedFiles": 39, + "trackedFilesMatchingCommittedHistory": 28, + "trackedFilesStrictlySupersededByCurrentSource": 11, + "caseOrEncodingAliasesMatchingRetainedCustodyByHash": 6, + "generatedOrTransportOnlyMissingFiles": 20, + "corruptCustodyCopies": [ + { + "path": "SpeedCubeDB/speedcubedb.com/a/3x3/ZBLLAS/ZBLL_AS_56.html", + "disposition": "removed-with-snapshot", + "reason": "The Windows copy was null-padded from byte 329216 through EOF; the intact retained VPS custody copy remains authoritative." + } + ], + "uniqueUnlandedSourceFound": false, + "disposition": "verified-safe-to-remove" + }, + "release19ParityProof": { + "packagePayloadFilesCompared": 145, + "packagePayloadBytesCompared": 1920300068, + "packagePayloadMissing": 0, + "packagePayloadDifferent": 0, + "worktreeZip": { + "sizeBytes": 1093537260, + "sha256": "630963f96c681fc49130cbc56c6c850008d4cddda7e83f2ee9c077c52d7709a9", + "matchedDownloadsCopy": true + }, + "worktreeInstaller": { + "sizeBytes": 851049086, + "sha256": "c31ed6b0b2ae1feb449c27e484d72dc2e07ba220e3cdafa4c3605429d638e0ea", + "matchedDownloadsCopy": true + } + }, + "safeDeletion": { + "windowsStagingRoot": { + "path": "C:\\HyperTwist_worktrees", + "topLevelTargetCount": 8, + "initialFileCount": 20352, + "measuredSizeBytes": 11684633205, + "allocatedBytesRecovered": 11720404992, + "removed": true + }, + "vpsRebuildables": { + "path": "/home/dev/src/HyperTwist", + "measuredFileCount": 42600, + "measuredSizeBytes": 2056975723, + "allocatedBytesRecovered": 2141913088, + "classes": [ + "node dependency trees", + "web build and test output", + "Unreal generated state and logs", + "repo-owned analyzer runtime materializations", + "Visual Studio generated project state", + "generated token inventory", + "empty untracked directories" + ], + "removed": true + }, + "staleProcesses": { + "terminatedProcessCount": 2, + "scope": "orphaned July 23 HyperTwist archive receive command only", + "reverseTunnelPreserved": true + } + }, + "protectedRetention": [ + { + "path": "C:\\Users\\Anthracite Ace\\Downloads\\HyperTwist-Alpha-Test-20260723-R19", + "reason": "Current verified portable Release 19 delivery." + }, + { + "path": "C:\\Users\\Anthracite Ace\\Downloads\\HyperTwist-Alpha-Test-20260723-R19.zip", + "reason": "Current verified portable Release 19 archive." + }, + { + "path": "C:\\Users\\Anthracite Ace\\Downloads\\HyperTwist-Alpha-Test-20260723-R19-Setup.exe", + "reason": "Current validated Release 19 installer." + }, + { + "path": "C:\\Users\\Anthracite Ace\\Downloads\\HyperTwist-Alpha-Test-20260723", + "reason": "Explicit Release 17 rollback delivery." + }, + { + "path": "C:\\Users\\Anthracite Ace\\Downloads\\HyperTwist-Alpha-Test-20260723.zip", + "reason": "Explicit Release 17 rollback archive." + }, + { + "path": "C:\\Users\\Anthracite Ace\\AppData\\Local\\UnrealHyperTwist\\Saved", + "reason": "Operator settings, saves, replays, logs, and diagnostics." + }, + { + "path": "/home/dev/src/HyperTwist/docs/refs and named custody/reference roots", + "reason": "Protected evidence and provenance, not rebuildable packet output." + } + ], + "finalVerification": { + "windowsStagingRootAbsent": true, + "currentRelease19DeliveriesPresent": true, + "release17RollbackDeliveriesPresent": true, + "operatorSavedDataPresent": true, + "vpsUntrackedDryRunEmpty": true, + "protectedIgnoredCustodyPresent": true, + "temporaryManifestFilesRemoved": true, + "temporaryCleanupHelperRemoved": true, + "todoJsonPolicy": "ignored" + } +} diff --git a/docs/ops/HYPERTWIST_ALPHA_TEST_TAKEOVER_BLACK_SCREEN_REPAIR_AND_VALIDATION_2026-07-19.md b/docs/ops/HYPERTWIST_ALPHA_TEST_TAKEOVER_BLACK_SCREEN_REPAIR_AND_VALIDATION_2026-07-19.md index e6aa6d3..e4d58e2 100644 --- a/docs/ops/HYPERTWIST_ALPHA_TEST_TAKEOVER_BLACK_SCREEN_REPAIR_AND_VALIDATION_2026-07-19.md +++ b/docs/ops/HYPERTWIST_ALPHA_TEST_TAKEOVER_BLACK_SCREEN_REPAIR_AND_VALIDATION_2026-07-19.md @@ -435,6 +435,33 @@ This is `isolated-current-host` evidence because no clean VM or Windows Sandbox was available. The executable is `NotSigned`; trusted Authenticode remains a production gate rather than an inferred Alpha capability. +### 2026-07-26 final staging retirement + +The earlier installer hygiene pass conservatively retained +`C:\HyperTwist_worktrees\phase10validate` plus historical and current package +production roots while four relative source-tree symlinks blocked complete +duplicate proof. That uncertainty is now closed by: + +`docs/generated/alpha_test_20260726_installer/post-task-hygiene-reconciliation-report.json` + +The reconciliation: + +- isolated all `4` relative symlinks without traversing their targets +- compared `19,789` regular snapshot files against the VPS source and Git + history +- found no unique unlanded source +- proved all `145` current package files and `1,920,300,068` bytes match the + retained Downloads Release 19 folder +- proved the staging and Downloads ZIPs share SHA-256 + `630963f96c681fc49130cbc56c6c850008d4cddda7e83f2ee9c077c52d7709a9` +- proved the staging and Downloads installers share SHA-256 + `c31ed6b0b2ae1feb449c27e484d72dc2e07ba220e3cdafa4c3605429d638e0ea` + +All `8` artifacts under `C:\HyperTwist_worktrees` were therefore removed and +the now-empty staging root was deleted. The current Release 19 +folder/ZIP/installer, explicit Release 17 rollback folder/ZIP, and operator +saved data remain protected. + ## Operator diagnostics The delivered Alpha uses stock Shipping configuration and first-party direct diff --git a/docs/ops/HYPERTWIST_OVERNIGHT_MODE_AGENTIC_CONTINUATION_SELF_BATCHING_AND_GOAL_CREATION_DOCTRINE_2026-06-19.md b/docs/ops/HYPERTWIST_OVERNIGHT_MODE_AGENTIC_CONTINUATION_SELF_BATCHING_AND_GOAL_CREATION_DOCTRINE_2026-06-19.md index f3a60d3..f47ab14 100644 --- a/docs/ops/HYPERTWIST_OVERNIGHT_MODE_AGENTIC_CONTINUATION_SELF_BATCHING_AND_GOAL_CREATION_DOCTRINE_2026-06-19.md +++ b/docs/ops/HYPERTWIST_OVERNIGHT_MODE_AGENTIC_CONTINUATION_SELF_BATCHING_AND_GOAL_CREATION_DOCTRINE_2026-06-19.md @@ -401,3 +401,78 @@ When the safety threshold is satisfied: This update supersedes any earlier reading of this doctrine that treated every prepared decision boundary as equally non-adoptable under plain `continue`. + +## Update - 2026-07-19 - non-halting safe adjacent option queues + +Routine safe branch menus must not become user-decision gates merely because the +assistant can name several useful next moves. + +When a closeout presents multiple adjacent options and those options are all: + +- same roadmap boundary or same release/validation/implementation authority + chain +- low ambiguity +- non-destructive +- lawful under the current role and license posture +- not blocked by missing source, unresolved quiz, legal boundary, or failing + validation +- naturally orderable by dependency or maturity + +future instances must treat the options as an execution queue rather than as a +reason to halt. + +The correct behavior is: + +1. choose the most complete professional order +2. execute the strongest safe branch first +3. continue into the next safe branch when it is still adjacent and + closure-improving +4. skip or defer only the branch that has a real stop condition +5. document the queue and the skipped/deferred branch explicitly + +This rule exists because the operator prefers complete, holistic, professional +execution over repeated micro-approval prompts. The assistant is expected to +guide the roadmap, not repeatedly ask the operator to choose between obvious +adjacent housekeeping, release-readiness, documentation, validation, or +same-lane closeout steps. + +### Recommended/default branch rule + +Every substantial closeout that lists options must identify the default branch. + +Default branch means: + +- the branch the assistant should take automatically on `continue` when no real + blocker exists +- the branch that best advances the declared lane toward truthful close +- not merely the first option listed + +If more than one option is safe and important, the default branch should be a +sequence rather than a single micro-step. + +### Non-halting examples + +Do not halt for: + +- release evidence archive policy vs packaging preflight when both are safe and + adjacent +- documentation propagation plus status pointer updates +- post-slice reassessment plus closeout plus roadmap pointer update +- bounded validation result packet plus status supersession when validation + already ran +- safe same-family P1/P2/reassessment sequence where the lane authority is clear + +Instead, do the safe sequence in the best order. + +### Halting examples remain unchanged + +Still halt for: + +- a true donor-family choice where no authority-backed winner exists +- a quiz row that requires the user's value judgment +- a legal clean-room vs direct implementation boundary +- a destructive filesystem or mirror operation not already authorized +- a validation failure that changes the next plan +- a packaging or deployment action that would publish externally, overwrite a + canonical workspace, or require credentials not already present in the safe + execution environment diff --git a/docs/ops/HYPERTWIST_OVERNIGHT_MODE_CLOSEOUT_CONTINUATION_AND_BOUNDARY_SHAPE_2026-06-19.md b/docs/ops/HYPERTWIST_OVERNIGHT_MODE_CLOSEOUT_CONTINUATION_AND_BOUNDARY_SHAPE_2026-06-19.md index 63b9bf3..2a7c80b 100644 --- a/docs/ops/HYPERTWIST_OVERNIGHT_MODE_CLOSEOUT_CONTINUATION_AND_BOUNDARY_SHAPE_2026-06-19.md +++ b/docs/ops/HYPERTWIST_OVERNIGHT_MODE_CLOSEOUT_CONTINUATION_AND_BOUNDARY_SHAPE_2026-06-19.md @@ -233,3 +233,44 @@ The governing interpretation is now explicit: This field is mandatory because deterministic continuation now includes a narrow safe path for recommendation adoption, and future instances must not leave that truth implicit. + +## Update - 2026-07-19 - safe adjacent queue and default branch fields + +Closeouts must no longer present routine safe adjacent options as if every +option requires fresh operator selection. + +When multiple options are listed, the closeout must include these fields: + +- recommended/default branch +- safe adjacent queue on `continue` +- branches that are safe to execute automatically +- branches that require a real halt + +Required interpretation: + +- if the listed options are all safe, adjacent, and logically orderable, plain + `continue` means execute them in the best professional sequence rather than + halt for a menu choice +- if one option is safest and another is also important, execute the safest one + first and then the next one if it remains adjacent +- if a later option crosses a true donor-family, quiz, legal, destructive, + external publishing, or failed-validation boundary, stop only at that later + real boundary + +Expanded closeout-shape repertoire: + +- recommended/default branch: execute `release evidence archive policy -> + bounded packaging preflight` because both are first-party, adjacent, and + non-destructive +- recommended/default branch: execute `P1 -> P2 -> reassessment -> closeout` + because the same-family lane is already source-real and authority-backed +- recommended/default branch: stop before donor-family implementation because + no next family has been selected from live authority +- safe adjacent queue on `continue`: `documentation propagation -> status + pointers -> commit/push under the active repository landing policy` +- halt-required branch: public deployment, signing, provider mutation, + destructive mirror movement, or unresolved quiz answer + +The closeout must be written so that a sleeping operator can stack `continue` +without the assistant veering into an unrelated project, while also not forcing +the operator to approve every small obvious step. diff --git a/docs/ops/HYPERTWIST_REMOTE_DEVELOPMENT_REGISTRATION_PLAN_JETBRAINS_GATEWAY_2026_1_2_AND_VISUAL_STUDIO_2022_2026-05-30.md b/docs/ops/HYPERTWIST_REMOTE_DEVELOPMENT_REGISTRATION_PLAN_JETBRAINS_GATEWAY_2026_1_2_AND_VISUAL_STUDIO_2022_2026-05-30.md index df8b06e..c95dc18 100644 --- a/docs/ops/HYPERTWIST_REMOTE_DEVELOPMENT_REGISTRATION_PLAN_JETBRAINS_GATEWAY_2026_1_2_AND_VISUAL_STUDIO_2022_2026-05-30.md +++ b/docs/ops/HYPERTWIST_REMOTE_DEVELOPMENT_REGISTRATION_PLAN_JETBRAINS_GATEWAY_2026_1_2_AND_VISUAL_STUDIO_2022_2026-05-30.md @@ -130,7 +130,9 @@ Current notable solution/package entry surfaces: - solution: `/home/dev/src/VectorShell/VectorShell.sln` - `HyperTwist` - root: `/home/dev/src/HyperTwist` - - solution: `/home/dev/src/HyperTwist/HyperTwist.sln` + - Unreal project: `/home/dev/src/HyperTwist/UnrealHyperTwist/UnrealHyperTwist.uproject` + - optional host-generated solution: + `/home/dev/src/HyperTwist/UnrealHyperTwist/UnrealHyperTwist.sln` - `ScriptoriumAI` - root: `/home/dev/src/ScriptoriumAI` - solution: `/home/dev/src/ScriptoriumAI/ScriptoriumAI.sln` diff --git a/docs/ops/project-file-setup-manual.codex.md b/docs/ops/project-file-setup-manual.codex.md index 426f256..30a00bb 100644 --- a/docs/ops/project-file-setup-manual.codex.md +++ b/docs/ops/project-file-setup-manual.codex.md @@ -2,6 +2,28 @@ This note records how `HyperTwist` should be represented in Visual Studio while the codebase is still being assembled. +## Current Supersession - 2026-07-26 + +HyperTwist now has a real Unreal application root. The tracked authority is: + +- `UnrealHyperTwist/UnrealHyperTwist.uproject` +- `UnrealHyperTwist/Source/` +- `UnrealHyperTwist/Config/` + +The ignored repo-root `HyperTwist.sln`, `HyperTwist.vcxproj`, +`HyperTwist.vcxproj.filters`, and `HyperTwist.vcxproj.user` files were retired +after the root project became the exact giant file collector prohibited below. +They indexed custody snapshots, mirrors, and generated Unreal output and were +not a valid build surface. + +For normal work, open the `.uproject`. Visual Studio or Unreal may generate +`UnrealHyperTwist/UnrealHyperTwist.sln` and related `Intermediate/ProjectFiles` +state on a Windows host when needed. Those generated files remain disposable +IDE state and are not source authority. + +The historical guidance below remains useful as the reason not to recreate a +repo-root catch-all project. + ## Current Rule The repo-root `HyperTwist.vcxproj` should be treated as a lightweight workspace shell, not as the real application project. diff --git a/scripts/Initialize-ExternalProductWorkspace.ps1 b/scripts/Initialize-ExternalProductWorkspace.ps1 index f41a443..47d8078 100644 --- a/scripts/Initialize-ExternalProductWorkspace.ps1 +++ b/scripts/Initialize-ExternalProductWorkspace.ps1 @@ -238,9 +238,7 @@ function Get-ProductConfig { } 'HyperTwist' { $entries = [System.Collections.Generic.List[object]]::new() - $entries.Add((New-RepositoryEntry -Key 'app' -Name 'HyperTwist App' -RepoUrl '' -LocalPath 'C:\HyperTwist' -Purpose 'First-party product repository.' -Language 'mixed' -IncludeMode 'project' -Storage 'app-repo' -ProjectFiles @( - [ordered]@{ name = 'HyperTwist'; path = 'C:\HyperTwist\HyperTwist.vcxproj'; kind = 'cpp' } - ) -License 'first-party' -LicenseStatus 'first-party' -MirrorClass 'app-repo' -WorkflowRole 'first-party' -ModelAAllowedSourceAccess $true -ModelBAllowedSourceAccess $true)) + $entries.Add((New-RepositoryEntry -Key 'app' -Name 'HyperTwist App' -RepoUrl '' -LocalPath 'C:\HyperTwist' -Purpose 'First-party Unreal product repository. Open C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.uproject; generated Visual Studio project files are disposable host state.' -Language 'mixed' -IncludeMode 'root' -Storage 'app-repo' -ProjectFiles @() -License 'first-party' -LicenseStatus 'first-party' -MirrorClass 'app-repo' -WorkflowRole 'first-party' -ModelAAllowedSourceAccess $true -ModelBAllowedSourceAccess $true -Notes @('Canonical IDE/build entry: C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.uproject.', 'Do not regenerate the retired repo-root catch-all HyperTwist.vcxproj.'))) foreach ($entry in (Get-HyperTwistMirrorEntries -PermissiveMirrorsRoot $permissiveMirrorsRoot -RestrictiveMirrorsRoot $restrictiveMirrorsRoot -CleanRoomSpecsRoot $cleanRoomSpecsRoot)) { $entries.Add($entry)