chore: reconcile and clear validation artifacts

This commit is contained in:
axiomlogicnexus 2026-07-26 10:20:49 +00:00
parent d0e3f96364
commit 697e833b62
9 changed files with 316 additions and 5 deletions

View file

@ -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.

View file

@ -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.

View file

@ -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"
}
}

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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`

View file

@ -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.

View file

@ -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)