Skip to content

docs(parity): audit de couverture — le plan canonique vs tout l'existant - #4

Open
openaxcloud wants to merge 1 commit into
mainfrom
docs/coverage-gap-audit-2026-07-17-clean
Open

docs(parity): audit de couverture — le plan canonique vs tout l'existant#4
openaxcloud wants to merge 1 commit into
mainfrom
docs/coverage-gap-audit-2026-07-17-clean

Conversation

@openaxcloud

Copy link
Copy Markdown
Owner

Audit demandé par Avi : « es-tu sûr qu'il ne manque rien dans ce plan ? »

Verdict : NON, pas complet. ~320 points ouverts inventoriés dans 29 anciens plans/fichiers de tâches ; ~13 (4 %) ont une référence exacte dans le plan canonique ou ses registres. 5 familles manquantes : (A) features Replit suivies ailleurs (File History, Skills, Panes, Reserved VM/Scheduled, entitlements par plan, pixel), (B) go-live du billing legacy SHADOW, (C) ~24 items de dette bolt, (D) ~190 points production-readiness/go-live, (E) orphelins dont une fuite tokenHash P2 encore vivante.

Un seul fichier ajouté : docs/parity/COVERAGE_GAP_AUDIT_2026-07-17.md. Zéro code modifié.

🤖 Generated with Claude Code

…s plans/fichiers de tâches (~320 points ouverts, ~13 couverts, 5 familles manquantes)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 19, 2026 13:37
@github-actions

Copy link
Copy Markdown
Contributor

ℹ️ Preview deployment not configured

Name Info
Latest commit 7c0f5cd
Status Preview deployment requires Cloudflare secrets

To enable preview deployments, repository maintainers can add:

  • CLOUDFLARE_API_TOKEN secret
  • CLOUDFLARE_ACCOUNT_ID secret

Built with E-Code

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Ce PR ajoute un document d’audit visant à vérifier la couverture du plan canonique de parité Replit par rapport à l’ensemble des anciens plans et fichiers de tâches, et à inventorier les écarts (familles manquantes, points orphelins, etc.) afin de répondre à la question “est-ce qu’il manque des sujets dans le plan ?”.

Changes:

  • Ajout d’un rapport d’audit reproductible listant la méthode, les chiffres et les familles de sujets manquants.
  • Inventaire structuré des points couverts vs manquants, incluant des références vers sources et artefacts.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


| Source | Point | Note |
|---|---|---|
| MASTER_100:185-188 | **`GET /orgs/:orgId/invitations` renvoie `tokenHash`** — fix écrit, jamais commité | **RE-VÉRIFIÉ AUJOURD'HUI (19/07) : toujours présent** — `services/api/src/app.ts:17532` renvoie les invites sans strip, `prisma-store.ts:7113` inclut `tokenHash` (les 4 autres endpoints invitation strippent, la liste NON). P2 sécurité vivant. |
@@ -0,0 +1,201 @@
# AUDIT DE COUVERTURE — le plan canonique vs TOUT l'existant

Date : 2026-07-19. Question d'Avi : « es-tu sûr qu'il ne manque rien dans ce

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9cb12668f6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +16 to +17
- **Référence de couverture** = branche `docs/plan-parite-replit-canonique`
(HEAD `9ac8f232`) : `docs/parity/PLAN_PARITE_REPLIT.md` (792 lignes) +

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Commit the canonical plan used by this audit

In the reviewed commit, neither docs/parity/PLAN_PARITE_REPLIT.md nor PLAN_PARITE_REPLIT_LIVRAISON.md exists, and the referenced commit 9ac8f232 is not reachable from the repository. Consequently, anyone checking out this commit cannot reproduce the central comparison or verify the reported 4% coverage; include the audited plan in the repository or reference a reachable immutable commit.

Useful? React with 👍 / 👎.

`BUG_INVENTORY_LIVE.md`, `DESIGN_PROGRAM_MASTER.md`, `DESIGN_AUDIT_LIVE.md`
- bolt : `docs/AUDIT_BOLT_HIDDEN_FEATURES.md`, `docs/BOLT_BASELINE_MAP.md`,
`docs/BOLT_FEATURE_PLACEMENT_MATRIX.md`, `docs/MIGRATION_FROM_BOLT.md`,
`outputs/BOLT_BACKEND_FRONTEND_GAP.md`, `outputs/BOLT_SURFACING_STATUS.md`

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve the source documents required by the audit

This named input is absent from the reviewed commit, as are 12 other listed inputs such as outputs/MASTER_100_PERCENT.md, .vibecore-audit/replit-measurements.md, and TRIAGE-BUGS-2026-06-19.md. Several conclusions—including the entire Bolt gap inventory and multiple orphan findings—depend on those uncommitted working-tree artifacts, so the claimed reproducibility is lost in every fresh clone; commit or archive the inputs, or replace them with reachable immutable references.

Useful? React with 👍 / 👎.

openaxcloud pushed a commit that referenced this pull request Jul 31, 2026
…fact brut)

Refus expert v4 (« une commande prête à jouer n'est pas une preuve exécutée »)
levé par EXÉCUTION réelle en prod le 2026-07-23, sur code intégré (merge #45 =
6d57a40, api 6d57a40) :

- POST /projects/cmrma9wof/nix-lock → 201, lock pinné gen-2 (storePath+sha256
  du catalogue signé)
- Publish #1 (gen-2 ACTIVE) → READY, URL 200, metadata storeGeneration=gen-2
- helm --set-file nixGenerations=<gen-2 REVOKED> (rev 897) + rollout api
- Publish #2 (lock gen-2 révoquée) → FAILED, refus TYPÉ
  ECODE_LOCK_GENERATION_REVOKED (« ...is REVOKED... — refusing to use it »),
  URL → 410 SERVER_DEPLOY_NOT_LIVE (aucun repli vers l'active)
- Restauration gen-2 ACTIVE (rev 898), VÉRIFIÉE (revokedAt absent), Publish #4
  → READY/200 (restauration comportementale confirmée) ; session QA supprimée

Les 4 réserves de l'expert désormais levées (pin obligatoire + persisté
release/rollback + validation exhaustive catalogue + négatif live EXÉCUTÉ).
Artefacts bruts horodatés + hashes : docs/deploy-evidence/2026-07-23-ctr-runtime-nix-v4/.
Contrat v5, PROVEN_REVIEW_PENDING.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
openaxcloud pushed a commit that referenced this pull request Jul 31, 2026
Answers the four reserves that refused PR #47, with REAL before/after E2E proof
on actual GCS + Kubernetes (not the memory adapters that were rejected).

1. Write barrier (#1): eraseSubjectStorage now calls WriteBarrierPort.freeze
   BEFORE any delete; a freeze failure aborts the erasure (nothing deleted, not
   verified) so nothing is recreated between erase/verify and the tombstone.
   Prod path: workspace-manager POST /workspaces/:id/freeze (revoke agent token
   + stop pod).

2. Real disappearance (#2): verification re-checks the LIVE backend — GCS list,
   and a new GET /workspaces/:id/pvc-exists that does a real  — never
   the workspace row's DELETED status (a partial k8s delete can leave a PVC).

3. By data subject (#3): the inventory is per-subject — the subject's sole-org
   buckets AND their per-user workspace in EVERY project they touched (sole-org
   + collaborator, via ProjectCollaborator), not just one main workspaceId.

4. Real proof (#4): two replayable, hashed E2Es under WIF-proof guardrails
   (dedicated test resources, no persistent keys, ~$0, full teardown):
   - GCS: GcsObjectStorage → eraseSubjectStorage against a throwaway bucket in
     the test project ecode-proof-b906ss; 3 objects → bucket+objects gone.
   - Kubernetes: a real Bound PVC on a throwaway local kind creates and manages local Kubernetes clusters using Docker container 'nodes'

Usage:
  kind [command]

Available Commands:
  build       Build one of [node-image]
  completion  Output shell completion code for the specified shell (bash, zsh or fish)
  create      Creates one of [cluster]
  delete      Deletes one of [cluster]
  export      Exports one of [kubeconfig, logs]
  get         Gets one of [clusters, nodes, kubeconfig]
  help        Help about any command
  load        Loads images into nodes
  version     Prints the kind CLI version

Flags:
  -h, --help              help for kind
  -q, --quiet             silence all stderr output
  -v, --verbosity int32   info log verbosity, higher value produces more output
      --version           version for kind

Use "kind [command] --help" for more information about a command. cluster → deleted →
     verified gone via live  (kind, not GKE, so $0 — no cost sign-off
     needed per the guardrail).
   Artifacts + SHA256 in docs/deploy-evidence/2026-07-23-physical-purge-e2e/.
   Removes the old in-memory proof the expert rejected.

Module + route + real-Postgres suites green (33 tests). PROVEN_REVIEW_PENDING.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
openaxcloud pushed a commit that referenced this pull request Aug 3, 2026
Answers the four reserves that refused PR #47, with REAL before/after E2E proof
on actual GCS + Kubernetes (not the memory adapters that were rejected).

1. Write barrier (#1): eraseSubjectStorage now calls WriteBarrierPort.freeze
   BEFORE any delete; a freeze failure aborts the erasure (nothing deleted, not
   verified) so nothing is recreated between erase/verify and the tombstone.
   Prod path: workspace-manager POST /workspaces/:id/freeze (revoke agent token
   + stop pod).

2. Real disappearance (#2): verification re-checks the LIVE backend — GCS list,
   and a new GET /workspaces/:id/pvc-exists that does a real  — never
   the workspace row's DELETED status (a partial k8s delete can leave a PVC).

3. By data subject (#3): the inventory is per-subject — the subject's sole-org
   buckets AND their per-user workspace in EVERY project they touched (sole-org
   + collaborator, via ProjectCollaborator), not just one main workspaceId.

4. Real proof (#4): two replayable, hashed E2Es under WIF-proof guardrails
   (dedicated test resources, no persistent keys, ~$0, full teardown):
   - GCS: GcsObjectStorage → eraseSubjectStorage against a throwaway bucket in
     the test project ecode-proof-b906ss; 3 objects → bucket+objects gone.
   - Kubernetes: a real Bound PVC on a throwaway local kind creates and manages local Kubernetes clusters using Docker container 'nodes'

Usage:
  kind [command]

Available Commands:
  build       Build one of [node-image]
  completion  Output shell completion code for the specified shell (bash, zsh or fish)
  create      Creates one of [cluster]
  delete      Deletes one of [cluster]
  export      Exports one of [kubeconfig, logs]
  get         Gets one of [clusters, nodes, kubeconfig]
  help        Help about any command
  load        Loads images into nodes
  version     Prints the kind CLI version

Flags:
  -h, --help              help for kind
  -q, --quiet             silence all stderr output
  -v, --verbosity int32   info log verbosity, higher value produces more output
      --version           version for kind

Use "kind [command] --help" for more information about a command. cluster → deleted →
     verified gone via live  (kind, not GKE, so $0 — no cost sign-off
     needed per the guardrail).
   Artifacts + SHA256 in docs/deploy-evidence/2026-07-23-physical-purge-e2e/.
   Removes the old in-memory proof the expert rejected.

Module + route + real-Postgres suites green (33 tests). PROVEN_REVIEW_PENDING.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
openaxcloud pushed a commit that referenced this pull request Aug 4, 2026
Answers the four reserves that refused PR #47, with REAL before/after E2E proof
on actual GCS + Kubernetes (not the memory adapters that were rejected).

1. Write barrier (#1): eraseSubjectStorage now calls WriteBarrierPort.freeze
   BEFORE any delete; a freeze failure aborts the erasure (nothing deleted, not
   verified) so nothing is recreated between erase/verify and the tombstone.
   Prod path: workspace-manager POST /workspaces/:id/freeze (revoke agent token
   + stop pod).

2. Real disappearance (#2): verification re-checks the LIVE backend — GCS list,
   and a new GET /workspaces/:id/pvc-exists that does a real  — never
   the workspace row's DELETED status (a partial k8s delete can leave a PVC).

3. By data subject (#3): the inventory is per-subject — the subject's sole-org
   buckets AND their per-user workspace in EVERY project they touched (sole-org
   + collaborator, via ProjectCollaborator), not just one main workspaceId.

4. Real proof (#4): two replayable, hashed E2Es under WIF-proof guardrails
   (dedicated test resources, no persistent keys, ~$0, full teardown):
   - GCS: GcsObjectStorage → eraseSubjectStorage against a throwaway bucket in
     the test project ecode-proof-b906ss; 3 objects → bucket+objects gone.
   - Kubernetes: a real Bound PVC on a throwaway local kind creates and manages local Kubernetes clusters using Docker container 'nodes'

Usage:
  kind [command]

Available Commands:
  build       Build one of [node-image]
  completion  Output shell completion code for the specified shell (bash, zsh or fish)
  create      Creates one of [cluster]
  delete      Deletes one of [cluster]
  export      Exports one of [kubeconfig, logs]
  get         Gets one of [clusters, nodes, kubeconfig]
  help        Help about any command
  load        Loads images into nodes
  version     Prints the kind CLI version

Flags:
  -h, --help              help for kind
  -q, --quiet             silence all stderr output
  -v, --verbosity int32   info log verbosity, higher value produces more output
      --version           version for kind

Use "kind [command] --help" for more information about a command. cluster → deleted →
     verified gone via live  (kind, not GKE, so $0 — no cost sign-off
     needed per the guardrail).
   Artifacts + SHA256 in docs/deploy-evidence/2026-07-23-physical-purge-e2e/.
   Removes the old in-memory proof the expert rejected.

Module + route + real-Postgres suites green (33 tests). PROVEN_REVIEW_PENDING.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
openaxcloud pushed a commit that referenced this pull request Aug 4, 2026
Answers the four reserves that refused PR #47, with REAL before/after E2E proof
on actual GCS + Kubernetes (not the memory adapters that were rejected).

1. Write barrier (#1): eraseSubjectStorage now calls WriteBarrierPort.freeze
   BEFORE any delete; a freeze failure aborts the erasure (nothing deleted, not
   verified) so nothing is recreated between erase/verify and the tombstone.
   Prod path: workspace-manager POST /workspaces/:id/freeze (revoke agent token
   + stop pod).

2. Real disappearance (#2): verification re-checks the LIVE backend — GCS list,
   and a new GET /workspaces/:id/pvc-exists that does a real  — never
   the workspace row's DELETED status (a partial k8s delete can leave a PVC).

3. By data subject (#3): the inventory is per-subject — the subject's sole-org
   buckets AND their per-user workspace in EVERY project they touched (sole-org
   + collaborator, via ProjectCollaborator), not just one main workspaceId.

4. Real proof (#4): two replayable, hashed E2Es under WIF-proof guardrails
   (dedicated test resources, no persistent keys, ~$0, full teardown):
   - GCS: GcsObjectStorage → eraseSubjectStorage against a throwaway bucket in
     the test project ecode-proof-b906ss; 3 objects → bucket+objects gone.
   - Kubernetes: a real Bound PVC on a throwaway local kind creates and manages local Kubernetes clusters using Docker container 'nodes'

Usage:
  kind [command]

Available Commands:
  build       Build one of [node-image]
  completion  Output shell completion code for the specified shell (bash, zsh or fish)
  create      Creates one of [cluster]
  delete      Deletes one of [cluster]
  export      Exports one of [kubeconfig, logs]
  get         Gets one of [clusters, nodes, kubeconfig]
  help        Help about any command
  load        Loads images into nodes
  version     Prints the kind CLI version

Flags:
  -h, --help              help for kind
  -q, --quiet             silence all stderr output
  -v, --verbosity int32   info log verbosity, higher value produces more output
      --version           version for kind

Use "kind [command] --help" for more information about a command. cluster → deleted →
     verified gone via live  (kind, not GKE, so $0 — no cost sign-off
     needed per the guardrail).
   Artifacts + SHA256 in docs/deploy-evidence/2026-07-23-physical-purge-e2e/.
   Removes the old in-memory proof the expert rejected.

Module + route + real-Postgres suites green (33 tests). PROVEN_REVIEW_PENDING.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
openaxcloud pushed a commit that referenced this pull request Aug 4, 2026
Answers the four reserves that refused PR #47, with REAL before/after E2E proof
on actual GCS + Kubernetes (not the memory adapters that were rejected).

1. Write barrier (#1): eraseSubjectStorage now calls WriteBarrierPort.freeze
   BEFORE any delete; a freeze failure aborts the erasure (nothing deleted, not
   verified) so nothing is recreated between erase/verify and the tombstone.
   Prod path: workspace-manager POST /workspaces/:id/freeze (revoke agent token
   + stop pod).

2. Real disappearance (#2): verification re-checks the LIVE backend — GCS list,
   and a new GET /workspaces/:id/pvc-exists that does a real  — never
   the workspace row's DELETED status (a partial k8s delete can leave a PVC).

3. By data subject (#3): the inventory is per-subject — the subject's sole-org
   buckets AND their per-user workspace in EVERY project they touched (sole-org
   + collaborator, via ProjectCollaborator), not just one main workspaceId.

4. Real proof (#4): two replayable, hashed E2Es under WIF-proof guardrails
   (dedicated test resources, no persistent keys, ~$0, full teardown):
   - GCS: GcsObjectStorage → eraseSubjectStorage against a throwaway bucket in
     the test project ecode-proof-b906ss; 3 objects → bucket+objects gone.
   - Kubernetes: a real Bound PVC on a throwaway local kind creates and manages local Kubernetes clusters using Docker container 'nodes'

Usage:
  kind [command]

Available Commands:
  build       Build one of [node-image]
  completion  Output shell completion code for the specified shell (bash, zsh or fish)
  create      Creates one of [cluster]
  delete      Deletes one of [cluster]
  export      Exports one of [kubeconfig, logs]
  get         Gets one of [clusters, nodes, kubeconfig]
  help        Help about any command
  load        Loads images into nodes
  version     Prints the kind CLI version

Flags:
  -h, --help              help for kind
  -q, --quiet             silence all stderr output
  -v, --verbosity int32   info log verbosity, higher value produces more output
      --version           version for kind

Use "kind [command] --help" for more information about a command. cluster → deleted →
     verified gone via live  (kind, not GKE, so $0 — no cost sign-off
     needed per the guardrail).
   Artifacts + SHA256 in docs/deploy-evidence/2026-07-23-physical-purge-e2e/.
   Removes the old in-memory proof the expert rejected.

Module + route + real-Postgres suites green (33 tests). PROVEN_REVIEW_PENDING.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
openaxcloud pushed a commit that referenced this pull request Aug 4, 2026
Answers the four reserves that refused PR #47, with REAL before/after E2E proof
on actual GCS + Kubernetes (not the memory adapters that were rejected).

1. Write barrier (#1): eraseSubjectStorage now calls WriteBarrierPort.freeze
   BEFORE any delete; a freeze failure aborts the erasure (nothing deleted, not
   verified) so nothing is recreated between erase/verify and the tombstone.
   Prod path: workspace-manager POST /workspaces/:id/freeze (revoke agent token
   + stop pod).

2. Real disappearance (#2): verification re-checks the LIVE backend — GCS list,
   and a new GET /workspaces/:id/pvc-exists that does a real  — never
   the workspace row's DELETED status (a partial k8s delete can leave a PVC).

3. By data subject (#3): the inventory is per-subject — the subject's sole-org
   buckets AND their per-user workspace in EVERY project they touched (sole-org
   + collaborator, via ProjectCollaborator), not just one main workspaceId.

4. Real proof (#4): two replayable, hashed E2Es under WIF-proof guardrails
   (dedicated test resources, no persistent keys, ~$0, full teardown):
   - GCS: GcsObjectStorage → eraseSubjectStorage against a throwaway bucket in
     the test project ecode-proof-b906ss; 3 objects → bucket+objects gone.
   - Kubernetes: a real Bound PVC on a throwaway local kind creates and manages local Kubernetes clusters using Docker container 'nodes'

Usage:
  kind [command]

Available Commands:
  build       Build one of [node-image]
  completion  Output shell completion code for the specified shell (bash, zsh or fish)
  create      Creates one of [cluster]
  delete      Deletes one of [cluster]
  export      Exports one of [kubeconfig, logs]
  get         Gets one of [clusters, nodes, kubeconfig]
  help        Help about any command
  load        Loads images into nodes
  version     Prints the kind CLI version

Flags:
  -h, --help              help for kind
  -q, --quiet             silence all stderr output
  -v, --verbosity int32   info log verbosity, higher value produces more output
      --version           version for kind

Use "kind [command] --help" for more information about a command. cluster → deleted →
     verified gone via live  (kind, not GKE, so $0 — no cost sign-off
     needed per the guardrail).
   Artifacts + SHA256 in docs/deploy-evidence/2026-07-23-physical-purge-e2e/.
   Removes the old in-memory proof the expert rejected.

Module + route + real-Postgres suites green (33 tests). PROVEN_REVIEW_PENDING.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
openaxcloud pushed a commit that referenced this pull request Aug 5, 2026
Answers the four reserves that refused PR #47, with REAL before/after E2E proof
on actual GCS + Kubernetes (not the memory adapters that were rejected).

1. Write barrier (#1): eraseSubjectStorage now calls WriteBarrierPort.freeze
   BEFORE any delete; a freeze failure aborts the erasure (nothing deleted, not
   verified) so nothing is recreated between erase/verify and the tombstone.
   Prod path: workspace-manager POST /workspaces/:id/freeze (revoke agent token
   + stop pod).

2. Real disappearance (#2): verification re-checks the LIVE backend — GCS list,
   and a new GET /workspaces/:id/pvc-exists that does a real  — never
   the workspace row's DELETED status (a partial k8s delete can leave a PVC).

3. By data subject (#3): the inventory is per-subject — the subject's sole-org
   buckets AND their per-user workspace in EVERY project they touched (sole-org
   + collaborator, via ProjectCollaborator), not just one main workspaceId.

4. Real proof (#4): two replayable, hashed E2Es under WIF-proof guardrails
   (dedicated test resources, no persistent keys, ~$0, full teardown):
   - GCS: GcsObjectStorage → eraseSubjectStorage against a throwaway bucket in
     the test project ecode-proof-b906ss; 3 objects → bucket+objects gone.
   - Kubernetes: a real Bound PVC on a throwaway local kind creates and manages local Kubernetes clusters using Docker container 'nodes'

Usage:
  kind [command]

Available Commands:
  build       Build one of [node-image]
  completion  Output shell completion code for the specified shell (bash, zsh or fish)
  create      Creates one of [cluster]
  delete      Deletes one of [cluster]
  export      Exports one of [kubeconfig, logs]
  get         Gets one of [clusters, nodes, kubeconfig]
  help        Help about any command
  load        Loads images into nodes
  version     Prints the kind CLI version

Flags:
  -h, --help              help for kind
  -q, --quiet             silence all stderr output
  -v, --verbosity int32   info log verbosity, higher value produces more output
      --version           version for kind

Use "kind [command] --help" for more information about a command. cluster → deleted →
     verified gone via live  (kind, not GKE, so $0 — no cost sign-off
     needed per the guardrail).
   Artifacts + SHA256 in docs/deploy-evidence/2026-07-23-physical-purge-e2e/.
   Removes the old in-memory proof the expert rejected.

Module + route + real-Postgres suites green (33 tests). PROVEN_REVIEW_PENDING.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
openaxcloud pushed a commit that referenced this pull request Aug 5, 2026
Answers the four reserves that refused PR #47, with REAL before/after E2E proof
on actual GCS + Kubernetes (not the memory adapters that were rejected).

1. Write barrier (#1): eraseSubjectStorage now calls WriteBarrierPort.freeze
   BEFORE any delete; a freeze failure aborts the erasure (nothing deleted, not
   verified) so nothing is recreated between erase/verify and the tombstone.
   Prod path: workspace-manager POST /workspaces/:id/freeze (revoke agent token
   + stop pod).

2. Real disappearance (#2): verification re-checks the LIVE backend — GCS list,
   and a new GET /workspaces/:id/pvc-exists that does a real  — never
   the workspace row's DELETED status (a partial k8s delete can leave a PVC).

3. By data subject (#3): the inventory is per-subject — the subject's sole-org
   buckets AND their per-user workspace in EVERY project they touched (sole-org
   + collaborator, via ProjectCollaborator), not just one main workspaceId.

4. Real proof (#4): two replayable, hashed E2Es under WIF-proof guardrails
   (dedicated test resources, no persistent keys, ~$0, full teardown):
   - GCS: GcsObjectStorage → eraseSubjectStorage against a throwaway bucket in
     the test project ecode-proof-b906ss; 3 objects → bucket+objects gone.
   - Kubernetes: a real Bound PVC on a throwaway local kind creates and manages local Kubernetes clusters using Docker container 'nodes'

Usage:
  kind [command]

Available Commands:
  build       Build one of [node-image]
  completion  Output shell completion code for the specified shell (bash, zsh or fish)
  create      Creates one of [cluster]
  delete      Deletes one of [cluster]
  export      Exports one of [kubeconfig, logs]
  get         Gets one of [clusters, nodes, kubeconfig]
  help        Help about any command
  load        Loads images into nodes
  version     Prints the kind CLI version

Flags:
  -h, --help              help for kind
  -q, --quiet             silence all stderr output
  -v, --verbosity int32   info log verbosity, higher value produces more output
      --version           version for kind

Use "kind [command] --help" for more information about a command. cluster → deleted →
     verified gone via live  (kind, not GKE, so $0 — no cost sign-off
     needed per the guardrail).
   Artifacts + SHA256 in docs/deploy-evidence/2026-07-23-physical-purge-e2e/.
   Removes the old in-memory proof the expert rejected.

Module + route + real-Postgres suites green (33 tests). PROVEN_REVIEW_PENDING.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
openaxcloud pushed a commit that referenced this pull request Aug 5, 2026
Answers the four reserves that refused PR #47, with REAL before/after E2E proof
on actual GCS + Kubernetes (not the memory adapters that were rejected).

1. Write barrier (#1): eraseSubjectStorage now calls WriteBarrierPort.freeze
   BEFORE any delete; a freeze failure aborts the erasure (nothing deleted, not
   verified) so nothing is recreated between erase/verify and the tombstone.
   Prod path: workspace-manager POST /workspaces/:id/freeze (revoke agent token
   + stop pod).

2. Real disappearance (#2): verification re-checks the LIVE backend — GCS list,
   and a new GET /workspaces/:id/pvc-exists that does a real  — never
   the workspace row's DELETED status (a partial k8s delete can leave a PVC).

3. By data subject (#3): the inventory is per-subject — the subject's sole-org
   buckets AND their per-user workspace in EVERY project they touched (sole-org
   + collaborator, via ProjectCollaborator), not just one main workspaceId.

4. Real proof (#4): two replayable, hashed E2Es under WIF-proof guardrails
   (dedicated test resources, no persistent keys, ~$0, full teardown):
   - GCS: GcsObjectStorage → eraseSubjectStorage against a throwaway bucket in
     the test project ecode-proof-b906ss; 3 objects → bucket+objects gone.
   - Kubernetes: a real Bound PVC on a throwaway local kind creates and manages local Kubernetes clusters using Docker container 'nodes'

Usage:
  kind [command]

Available Commands:
  build       Build one of [node-image]
  completion  Output shell completion code for the specified shell (bash, zsh or fish)
  create      Creates one of [cluster]
  delete      Deletes one of [cluster]
  export      Exports one of [kubeconfig, logs]
  get         Gets one of [clusters, nodes, kubeconfig]
  help        Help about any command
  load        Loads images into nodes
  version     Prints the kind CLI version

Flags:
  -h, --help              help for kind
  -q, --quiet             silence all stderr output
  -v, --verbosity int32   info log verbosity, higher value produces more output
      --version           version for kind

Use "kind [command] --help" for more information about a command. cluster → deleted →
     verified gone via live  (kind, not GKE, so $0 — no cost sign-off
     needed per the guardrail).
   Artifacts + SHA256 in docs/deploy-evidence/2026-07-23-physical-purge-e2e/.
   Removes the old in-memory proof the expert rejected.

Module + route + real-Postgres suites green (33 tests). PROVEN_REVIEW_PENDING.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
openaxcloud pushed a commit that referenced this pull request Aug 5, 2026
Answers the four reserves that refused PR #47, with REAL before/after E2E proof
on actual GCS + Kubernetes (not the memory adapters that were rejected).

1. Write barrier (#1): eraseSubjectStorage now calls WriteBarrierPort.freeze
   BEFORE any delete; a freeze failure aborts the erasure (nothing deleted, not
   verified) so nothing is recreated between erase/verify and the tombstone.
   Prod path: workspace-manager POST /workspaces/:id/freeze (revoke agent token
   + stop pod).

2. Real disappearance (#2): verification re-checks the LIVE backend — GCS list,
   and a new GET /workspaces/:id/pvc-exists that does a real  — never
   the workspace row's DELETED status (a partial k8s delete can leave a PVC).

3. By data subject (#3): the inventory is per-subject — the subject's sole-org
   buckets AND their per-user workspace in EVERY project they touched (sole-org
   + collaborator, via ProjectCollaborator), not just one main workspaceId.

4. Real proof (#4): two replayable, hashed E2Es under WIF-proof guardrails
   (dedicated test resources, no persistent keys, ~$0, full teardown):
   - GCS: GcsObjectStorage → eraseSubjectStorage against a throwaway bucket in
     the test project ecode-proof-b906ss; 3 objects → bucket+objects gone.
   - Kubernetes: a real Bound PVC on a throwaway local kind creates and manages local Kubernetes clusters using Docker container 'nodes'

Usage:
  kind [command]

Available Commands:
  build       Build one of [node-image]
  completion  Output shell completion code for the specified shell (bash, zsh or fish)
  create      Creates one of [cluster]
  delete      Deletes one of [cluster]
  export      Exports one of [kubeconfig, logs]
  get         Gets one of [clusters, nodes, kubeconfig]
  help        Help about any command
  load        Loads images into nodes
  version     Prints the kind CLI version

Flags:
  -h, --help              help for kind
  -q, --quiet             silence all stderr output
  -v, --verbosity int32   info log verbosity, higher value produces more output
      --version           version for kind

Use "kind [command] --help" for more information about a command. cluster → deleted →
     verified gone via live  (kind, not GKE, so $0 — no cost sign-off
     needed per the guardrail).
   Artifacts + SHA256 in docs/deploy-evidence/2026-07-23-physical-purge-e2e/.
   Removes the old in-memory proof the expert rejected.

Module + route + real-Postgres suites green (33 tests). PROVEN_REVIEW_PENDING.

Co-Authored-By: Claude Opus 4.8 (1M context) <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