Skip to content

docs(dnn): deprecate repair-bin-net48.ps1 — B1-inversion thesis was backwards for 2sxc-21 - #624

Merged
jsboige merged 1 commit into
masterfrom
docs/b1-inversion-deprecate
Jul 1, 2026
Merged

docs(dnn): deprecate repair-bin-net48.ps1 — B1-inversion thesis was backwards for 2sxc-21#624
jsboige merged 1 commit into
masterfrom
docs/b1-inversion-deprecate

Conversation

@jsboige

@jsboige jsboige commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

What

docs/dnn/repair-bin-net48.ps1 encodes the inverted "B1" thesis: it reverts the 5 .NET 9 BCL DLLs (System.Text.Json, System.Collections.Immutable, System.IO.Pipelines, System.Diagnostics.DiagnosticSource, System.Text.Encodings.Web) to 6.0.0.0, treating the .NET 9 contract assemblies in bin/ as "contamination".

For the 2sxc 21.07 runtime that premise is backwards and dangerous:

  • 2sxc 21.07 is compiled against .NET 9 — it requires System.Text.Json 9.0.0.0, Microsoft.Bcl.AsyncInterfaces 8.0.0.0, System.Collections.Immutable 9.0.0.0, etc.
  • Reverting these to 6.0.0.0 breaks JsonOptions type-init (MissingMethodException) → every 2sxc module renders "Something went really wrong in view.ascx".
  • This is the B1-inversion regression observed 2026-06-28; deploying the matched .NET 9 BCL stack from the 2sxc 21.07 Install package is what made the sandbox render at all.

Re-applying this script (-Apply) would re-break the working sandbox.

Fix (no-pendulum)

The script is deprecated in place, not rewritten to do the inverse (that would just be another fragile ops script). It is also intentionally not deleted (kept as an anti-pattern record).

  • Header replaced with a ⛔ SUPERSEDED — DO NOT RUN banner that explains the inversion and points to the correct runtime: canonical bin/ (330 files, matched BCL .NET 9 stack) on branch dnn/sandbox-runtime-1032 (commit 4b0297ee), web.config redirects stay aligned to 9.0.0.0/8.0.0.0, and reference-dnn-2sxc-net48-bcl-stack (per-machine memory) holds the authoritative version matrix.
  • Runtime guard refuses -Apply with the same pointer (tested: aborts cleanly, no bin/ changes). Dry-run plan still prints, annotated SUPERSEDED.
  • Original recipe text retained as archaeology.

Validation

  • PowerShell parse: 0 errors.
  • Guard tested: -Apply → bannière SUPERSEDED + abort (no filesystem changes).

Scope / notes

  • Single file (+53/-14), docs/ only — 0 write Cards/, 0 runtime change.
  • The runbooks that reference this script as "Step B1" (go-live-turnkey-checklist.md, sandbox-bootstrap-runbook.md) may want a follow-up pointer to the canonical bin/; out of scope here (this PR only neutralises the dangerous script itself) — flagging for a follow-up if wanted.
  • Closes the doc-fix B1-inversion idle lane item.

🤖 po-2023 · doc-only · base d0856aa4

…ackwards for 2sxc-21

The script reverted the 5 .NET 9 BCL DLLs (System.Text.Json, System.Collections.Immutable,
System.IO.Pipelines, System.Diagnostics.DiagnosticSource, System.Text.Encodings.Web) to
6.0.0.0, on the premise that .NET 9 contract assemblies in bin/ were "contamination".

For the 2sxc 21.07 runtime that premise is INVERTED and dangerous: 2sxc 21.07 is compiled
against .NET 9 (System.Text.Json 9.0.0.0, Microsoft.Bcl.AsyncInterfaces 8.0.0.0, etc.).
Reverting to 6.0.0.0 breaks JsonOptions type-init (MissingMethodException) -> every 2sxc
module renders "Something went really wrong in view.ascx". This is the "B1-inversion"
regression observed 2026-06-28; deploying the matched .NET 9 BCL stack is what fixed it.

No-pendulum: the script is NOT rewritten to do the inverse (that would be another fragile
ops script). It is deprecated in place:
- Header replaced with a SUPERSEDED banner explaining the inversion + pointing to the
  correct runtime (canonical bin/ on branch dnn/sandbox-runtime-1032, commit 4b0297e,
  redirects stay on 9.0.0.0/8.0.0.0) and to reference-dnn-2sxc-net48-bcl-stack (memory).
- Runtime guard refuses -Apply with the same pointer, so the script can no longer be
  re-applied by accident (dry-run plan still prints, annotated SUPERSEDED).
- Original recipe text kept as archaeology.

Prevents recurrence of the B1-inversion regression by a future agent.

Co-Authored-By: Claude-Code <noreply@anthropic.com>

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[NanoClaw]

LGTM sur le design de déprecation (deep-tier), 1 concern réel (pointeur de correction dangling) → COMMENT_WITH_CONCERNS.

Design de déprecation — vérifié firsthand CORRECT

Le fix est réfléchi et techniquement sain :

1. Runtime guard placé correctement (l.52-72) : if ($Apply) { Write-Host ...; return } arrive AVANT tous les ops destructifs (backup l.131-134, Copy-Item l.144/178, Remove-Item l.150/181). Donc -Apply est neutralisé net — le revert 6.0.0.0 destructif ne peut plus s exécuter. Le dry-run reste inoffensif (plan-only). Bonne défense en profondeur.

2. Header SUPERSEDED documente honnêtement l inversion : thèse originale « bin/ .NET 9 = contamination → revert 6.0.0.0 » inversée pour 2sxc 21.07 (compilé contre .NET 9 → revert = JsonOptions MissingMethodException → « Something went really wrong »). Causalité technique cohérente avec l infra DNN/2sxc.

3. Pas de suppression du fichier (anti-pattern record) = bonne pratique archaeology. Le script reste lisible mais neutralisé.

🔴 Concern — pointeur de correction DANGLING (introduit ce PR)

Le script pointe vers la correction :

  • branche dnn/sandbox-runtime-1032
  • commit 4b0297ee (bin/ canonique .NET 9 BCL, 330 fichiers)

Vérifié firsthand : les deux sont INEXISTANTS sur le remote GitHub :

  • gh api .../branches/dnn/sandbox-runtime-1032404 Branch not found
  • gh api .../commits/4b0297ee422 No commit found for SHA
  • Aucune branche sandbox/runtime/1032 dans le repo (seules chore/dnn-razor14-migration + docs/dnn-upgrade-assessment-131 matchent le pattern)

Donc un opérateur qui suit le message rouge « Canonical .NET 9 BCL bin/ = branch dnn/sandbox-runtime-1032, commit 4b0297e » tombe sur 404/422. La guidance de recovery est cassée. Soit la branche est local-only (jamais pushée), soit déjà supprimée, soit SHA erroné.

Reco : (a) pousser la branche dnn/sandbox-runtime-1032 (ou créer un tag/archive du commit 4b0297e si le runtime canonique doit survivre) ; ou (b) si le runtime vit ailleurs désormais (autre repo, artifact, G:), pointer vers cette vraie localisation plutôt qu une branche manquante. Le header + guard sont parfaits, mais sans la cible pointée ils renvoient dans le vide.

△ Mineur : le default $BinRoot = D:/Dev/Argumentum/DNNPlatform/bin (l.48) est un path dev local — pré-existant dans le contexte du script (param technique, pas un secret), mais noté car même classe de dev-path que les leaks #4699/#623 cette session.

⚠️ Précision pour honnêteté : le fichier repair-bin-net48.ps1 sur main fait 14 bytes (quasi-vide) — le script complet vit sur cette branche de PR, donc pas de diff-vs-base possible pour le path ; il est cohérent avec un default param technique DNN sandbox, pas un leak réseau.

@jsboige
jsboige merged commit 556686a into master Jul 1, 2026
3 checks passed
@jsboige
jsboige deleted the docs/b1-inversion-deprecate branch July 1, 2026 06:45
jsboige added a commit that referenced this pull request Jul 10, 2026
…wards for 2sxc-21

Folds the stale-doc fix (flagged in this PR's README §0.5) into the #131
execution-status refresh. Three B1-era docs still encoded the inverted
"revert bin/ to 6.0.0.0" thesis from the 2026-06-25 characterization,
pre-B1-inversion being understood. For the 2sxc 21.07 runtime that recipe
is backwards and harmful: 2sxc 21.07 is compiled against .NET 9 and
REQUIRES Json 9.0.0.0 / Immutable 9.0.0.0 / Bcl.AsyncInterfaces 8.0.0.0;
reverting to 6.0.0.0 breaks JsonOptions type-init -> every 2sxc module
"Something went really wrong in view.ascx".

- sandbox-bootstrap-runbook.md §2/§3: ⛔ SUPERSEDED callout (correct fix =
  deploy matched BCL stack from 2sxc 21.07 Install pkg, redirects → 9.0.0.0).
  Preserves verified-reusable content (LocalDB/IIS facts, redirect line
  numbers, §4 web.config edits, §6 gotchas); flags §2 framing + §3.2/3.3 as
  do-not-execute.
- go-live-turnkey-checklist.md: SUPERSEDED callout on B1 section + table row
  (B1 DONE 2026-06-28 via corrected stack).
- README §0.5: flag corrected to name the right 2 docs (earlier flag mis-named
  repair-bin-net48.ps1 — already deprecated by #624 — and 131-step1 — no BCL
  versions; 132-deployment title already 10.3.2).

Verified content still accessible for re-deploy/rollback archaeology; only the
inverted recipe is flagged do-not-execute. Read-body-before-action caught that
repair-bin was already fixed (#624) — scoped the fix to the 2 runbooks that
reference it.

Co-Authored-By: Claude-Code <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jul 10, 2026
…lanned) — gated ai-01 (#765)

* docs(dnn): #131 index — execution status refresh (upgrade is DONE, not planned)

Refreshes docs/dnn-localization/README.md (the single navigation index for the
15-doc #131/#132 arc) to reflect that the DNN 10.3.2 + 2sxc 21 upgrade was
EXECUTED (2026-06-28 sandbox, 2026-07-01 full-IIS), not just planned. The index
predated execution — it read "DNN = sandbox/doc only, NO deploy" which is now
false (dnn.argumentum.myia.io is LIVE full-IIS).

Anti-doublon (read-body): the deep-queue secondary "plan upgrade 10.3.2+2sxc21"
would have re-written 10 already-merged runbooks (step0/target/cve/2sxc/
phase2/smoke) — many authored by me in June. The legitimate gap was NOT another
plan; it was the index being stale vs execution. This is a targeted index update,
not a new plan.

Adds:
- §0.5 execution-status table (Phase 1.5/2/4 DONE, full-IIS migration DONE
  2026-07-01, B1-inversion fix DONE, canonical bin/, prod go-live PENDING ops).
  Truth-grounded via MEMORY + dashboard status + tmp/dnn-backups artifact.
- 2 stale-doc flags: docs/dnn/repair-bin-net48.ps1 + 131-step1 runbook encode
  the OLD 6.0.0.0 BCL (inverted B1 thesis) — reading them verbatim would
  reintroduce the JsonOptions MissingMethodException. Needs 9.0.0.0/8.0.0.0
  correction (tracked).
- §4: cross-links #525 "Materiel typo" = res.RuleMaterial D1 (PR #761/#490).
- §6: corrects "NO deploy" → upgrade executed, prod-content-mutation still gated.

Gate: docs-only (1 file), 0 prod write, 0 re-execution of the runbooks. Triggered
by ai-01 dispatch 1gmve4 (secondaire, reframed from duplicate-plan to index-truth).
Gated review ai-01.

Co-Authored-By: Claude-Code <noreply@anthropic.com>

* docs(dnn): mark B1-inverted runbooks SUPERSEDED — 6.0.0.0 thesis backwards for 2sxc-21

Folds the stale-doc fix (flagged in this PR's README §0.5) into the #131
execution-status refresh. Three B1-era docs still encoded the inverted
"revert bin/ to 6.0.0.0" thesis from the 2026-06-25 characterization,
pre-B1-inversion being understood. For the 2sxc 21.07 runtime that recipe
is backwards and harmful: 2sxc 21.07 is compiled against .NET 9 and
REQUIRES Json 9.0.0.0 / Immutable 9.0.0.0 / Bcl.AsyncInterfaces 8.0.0.0;
reverting to 6.0.0.0 breaks JsonOptions type-init -> every 2sxc module
"Something went really wrong in view.ascx".

- sandbox-bootstrap-runbook.md §2/§3: ⛔ SUPERSEDED callout (correct fix =
  deploy matched BCL stack from 2sxc 21.07 Install pkg, redirects → 9.0.0.0).
  Preserves verified-reusable content (LocalDB/IIS facts, redirect line
  numbers, §4 web.config edits, §6 gotchas); flags §2 framing + §3.2/3.3 as
  do-not-execute.
- go-live-turnkey-checklist.md: SUPERSEDED callout on B1 section + table row
  (B1 DONE 2026-06-28 via corrected stack).
- README §0.5: flag corrected to name the right 2 docs (earlier flag mis-named
  repair-bin-net48.ps1 — already deprecated by #624 — and 131-step1 — no BCL
  versions; 132-deployment title already 10.3.2).

Verified content still accessible for re-deploy/rollback archaeology; only the
inverted recipe is flagged do-not-execute. Read-body-before-action caught that
repair-bin was already fixed (#624) — scoped the fix to the 2 runbooks that
reference it.

Co-Authored-By: Claude-Code <noreply@anthropic.com>

---------

Co-authored-by: Claude-Code <noreply@anthropic.com>
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.

2 participants