DA-EX-001 / CAS PROBATOIRE PUBLIC
Une demande. Un accusé de réception.
Un instantané archivé du gestionnaire de demandes du 12 octobre 2026 : code source, propriété et exécution enregistrée. Le gestionnaire actuel dispose de protections supplémentaires et est vérifié séparément.
13.10.2026 / CORRECTION DE LA SPÉCIFICATION
F-1 / F-2 : lacunes de couverture corrigées.
L’exécution initiale de 347 requêtes n’a jamais emprunté la branche de repli après concurrence d’insertion et tous les jeux d’entrée utilisaient language = en. Le fichier SPEC.md archivé surestimait la couverture de ces chemins. Les résultats de régression complémentaires ci-dessous sont distincts de l’exécution initiale.
F-1 / Concurrence forcée
Une barrière retient les résultats de deux véritables instructions SELECT jusqu’à ce qu’elles aient toutes deux lu une clé absente. Un INSERT crée alors la ligne, l’autre ne modifie rien et son gestionnaire exécute le SELECT de repli. Des contenus identiques et conflictuels sont vérifiés en faisant gagner chacun des deux clients : 201/200 ou 201/409, un seul accusé de réception persistant et des données du gagnant inchangées.
F-2 / Normalisation de la langue
Quatorze entrées sont couvertes pour le gestionnaire historique : en, uk, valeur absente, null, chaîne vide, langue inconnue, EN, en avec espaces, en-US, false, true, nombre, tableau et objet. Seul en exact reste en ; les autres valeurs deviennent uk. Chaque cas vérifie la langue enregistrée, le rejeu avec sa valeur canonique et le conflit lors d’un changement de langue normalisée. Le gestionnaire actuel vérifie aussi de, DE, de-DE et de avec espaces : seul de exact reste de ; les trois autres deviennent uk. De même, fr, FR, fr-FR et fr avec espaces sont vérifiés : seul fr exact reste fr.
| Vérification | Gestionnaire historique | Gestionnaire actuel |
|---|---|---|
| Scénarios avec barrière | 4 | 4 |
| Exécutions du repli / V8 | 4 | 4 |
| Entrées de langue | 14 | 22 |
| Requêtes supplémentaires | 50 | 74 |
| Assertions des groupes supplémentaires | 188 | 268 |
Contrôles négatifs: Les nouveaux tests ont rejeté trois défauts volontaires : suppression du repli, acceptation de contenus conflictuels et normalisation de toutes les langues en en.
Exécution locale sur SQLite réel avec un ordonnancement SQL contrôlé dans un processus. Ce n’est pas un test de concurrence distribuée ni de Cloudflare D1. Aucune API de production n’a été appelée. Le ZIP initial, le manifeste, les signatures et le rapport du 12 octobre restent inchangés.
Exécution supplémentaire: PASS · v24.19.0 ·
Résultats exacts et empreintes SHA-256 du code vérifié
Commande de régression dans le projet source:
node scripts/verify-evidence-coverage.mjs{
"schema": "DA-EX-001/coverage-correction/v1",
"status": "PASS",
"finished_at": "2026-10-14T00:08:46.088Z",
"node": "v24.19.0",
"artifact_id": "924bcddb97a58f886a7e4bdd8b3165aae6e05a4ca3b8f91184ce559ab4e9a07b",
"baseline": {
"handler_requests": 347,
"checks": 1773,
"journal_events": 332,
"insert_race_fallback_executions": 0
},
"historical": {
"status": "PASS",
"checks": 188,
"handler_requests": 50,
"forced_race": {
"cases": 4,
"requests": 8,
"scenarios": [
{
"case": "identical_payloads",
"winner": 0,
"statuses": [
201,
200
],
"initial_reads_absent": 2,
"insert_changes": [
1,
0
],
"fallback_reads": 1,
"rows": 1,
"status": "PASS"
},
{
"case": "identical_payloads",
"winner": 1,
"statuses": [
200,
201
],
"initial_reads_absent": 2,
"insert_changes": [
1,
0
],
"fallback_reads": 1,
"rows": 1,
"status": "PASS"
},
{
"case": "conflicting_payloads",
"winner": 0,
"statuses": [
201,
409
],
"initial_reads_absent": 2,
"insert_changes": [
1,
0
],
"fallback_reads": 1,
"rows": 1,
"status": "PASS"
},
{
"case": "conflicting_payloads",
"winner": 1,
"statuses": [
409,
201
],
"initial_reads_absent": 2,
"insert_changes": [
1,
0
],
"fallback_reads": 1,
"rows": 1,
"status": "PASS"
}
]
},
"language_normalization": {
"cases": 14,
"requests": 42,
"scenarios": [
{
"input": "en",
"normalized": "en",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "uk",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "missing",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "null",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "empty",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "unknown",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "uppercase_en",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "padded_en",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "regional_en",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "false",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "true",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "number",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "array",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "object",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
}
]
},
"insert_race_fallback_executions": 4
},
"current": {
"status": "PASS",
"checks": 268,
"handler_requests": 74,
"forced_race": {
"cases": 4,
"requests": 8,
"scenarios": [
{
"case": "identical_payloads",
"winner": 0,
"statuses": [
201,
200
],
"initial_reads_absent": 2,
"insert_changes": [
1,
0
],
"fallback_reads": 1,
"rows": 1,
"status": "PASS"
},
{
"case": "identical_payloads",
"winner": 1,
"statuses": [
200,
201
],
"initial_reads_absent": 2,
"insert_changes": [
1,
0
],
"fallback_reads": 1,
"rows": 1,
"status": "PASS"
},
{
"case": "conflicting_payloads",
"winner": 0,
"statuses": [
201,
409
],
"initial_reads_absent": 2,
"insert_changes": [
1,
0
],
"fallback_reads": 1,
"rows": 1,
"status": "PASS"
},
{
"case": "conflicting_payloads",
"winner": 1,
"statuses": [
409,
201
],
"initial_reads_absent": 2,
"insert_changes": [
1,
0
],
"fallback_reads": 1,
"rows": 1,
"status": "PASS"
}
]
},
"language_normalization": {
"cases": 22,
"requests": 66,
"scenarios": [
{
"input": "en",
"normalized": "en",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "uk",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "missing",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "null",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "empty",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "unknown",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "uppercase_en",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "padded_en",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "regional_en",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "false",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "true",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "number",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "array",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "object",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "de",
"normalized": "de",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "uppercase_de",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "regional_de",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "padded_de",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "fr",
"normalized": "fr",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "uppercase_fr",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "regional_fr",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
},
{
"input": "padded_fr",
"normalized": "uk",
"statuses": [
201,
200,
409
],
"status": "PASS"
}
]
},
"insert_race_fallback_executions": 4
},
"mutation_controls": [
{
"id": "fallback_removed",
"result": "DETECTED",
"reason": "One real no-op insert followed by the fallback SELECT"
},
{
"id": "conflict_accepted",
"result": "DETECTED",
"reason": "Fallback response"
},
{
"id": "language_always_en",
"result": "DETECTED",
"reason": "en: different normalized language conflicts"
}
],
"bindings": [
{
"role": "historical_handler",
"sha256": "ecec0fe67f3df9658c4a42e20d9e2c8f0aabf60d9584ec225f877c57b4302cd0"
},
{
"role": "current_handler",
"sha256": "dacc2952c2876497a49d1c86394ad601c30430df551936d71d3b1418c9ef3b8d"
},
{
"role": "current_security",
"sha256": "c3b0adb9b8e4950edc72beb70719028e0387a48b2c4f635cecee9438759039b3"
},
{
"role": "current_body_reader",
"sha256": "4669c3ec9eed91a0d082a95a11433693481f073e39cb1878f325abcddc449c25"
},
{
"role": "current_fields",
"sha256": "62941d820fea3b01467c769a2e4f48bb2e28710e3e91c27ee30241badd565385"
},
{
"role": "current_migration",
"sha256": "9998207ea659d29bbb9ef501f835c68a22612244306bec5f07df85b1c78c415d"
},
{
"role": "probes",
"sha256": "71890850c625a796cce034edb4198d57f9e3cf4e8d0ed3989a063d940f9e310f"
},
{
"role": "runner",
"sha256": "b0eb82555abb59927d67d530e369c492f5975bf60c1bf2bf423b3e66dbc24f29"
}
],
"production_requests": 0,
"limits": [
"Deterministically scheduled SQL statements in one process and one SQLite connection.",
"No claim about distributed scheduling, Cloudflare D1 or physical effects.",
"The original package and report are retained unchanged; these are additional probes.",
"Only the runtime shown in this result was executed here."
]
}01Affirmation
Un rejeu ne crée pas de second enregistrement.
Tant que l’enregistrement existe et reste inchangé, rejouer une demande valide avec le même requestId et le même contenu normalisé renvoie son accusé de réception initial. Un contenu différent sous cet identifiant est rejeté comme conflit.
IDENTIFIANT DE REQUÊTE7a345678-1234-4234-9234-123456789abc
02Artefact
Un code source consultable.
Les fichiers correspondent au paquet du 12 octobre 2026. Ils ne constituent pas l’implémentation actuelle de l’API après l’ajout du HMAC, des limites par IP et de la suppression par identité authentifiée.
SHA-256 DE L’ARTEFACT
924bcddb97a58f886a7e4bdd8b3165aae6e05a4ca3b8f91184ce559ab4e9a07b03Propriété
Au plus un enregistrement par clé.
∀ k · count(rows[k]) ≤ 1
La contrainte PRIMARY KEY NOT NULL empêche deux lignes de partager le même identifiant. Le gestionnaire renvoie l’accusé de réception enregistré uniquement si les champs correspondent ; sinon, il renvoie 409.
Cet invariant suppose que SQLite applique ses contraintes. Les résultats ci-dessous sont des vérifications circonscrites de l’implémentation, pas une preuve formelle de l’ensemble du code.
SPEC.md archivé — voir la correction F-1 / F-2 ci-dessus → ↗04Vérification
Un résultat d’exécution observé.
347exécutions du gestionnaire
81séquences × 4 requêtes
16appels concurrents dans un processus
1vérification après réouverture de la base
Tous les mots de longueur quatre sur A / B / C : deux demandes valides différentes partageant un identifiant, et une demande sans consentement. 347 = 5 + 324 + 16 + 2. Requêtes de contrôle + 81 × 4 requêtes + appels concurrents + écriture initiale et rejeu après réouverture de la base.
| Étape de contrôle | HTTP | Lignes avant → après | Observation |
|---|---|---|---|
| Premier envoi | 201 | 0 → 1 | Un enregistrement créé |
| Rejeu exact | 200 | 1 → 1 | Même accusé de réception |
| Rejeu normalisé | 200 | 1 → 1 | Même accusé de réception |
| Contenu modifié, même identifiant | 409 | 1 → 1 | Conflit, enregistrement préservé |
| Consentement absent | 400 | 1 → 1 | Rejet, enregistrement préservé |
Vérifier le lien avec les fichiers.
Le bouton recalcule le SHA-256 des fichiers téléchargés et le compare au manifeste de référence. Ce contrôle vérifie l’intégrité dans votre navigateur ; relancez les tests serveur avec la commande ci-dessous.
Pas encore vérifié dans ce navigateur.
10 fichiers de contenu + manifest.json = 11 fichiers ZIP
- README.md—
- SPEC.md—
- artifact/app/api/inquiries/route.ts—
- artifact/drizzle/0000_parallel_swordsman.sql—
- artifact/lib/inquiries.js—
- artifact/lib/inquiry-fields.js—
- fixtures.json—
- package.json—
- report.json—
- verify.mjs—
SHA-256 DU MANIFESTE
797f9a0c63a718c324f25f58b12a70c3441675358321b4d3c505b078c14954c0Sélectionnez une copie originale ou modifiée. Le fichier est traité sur votre appareil et n’est pas téléversé.
Aucun fichier sélectionné.
SHA-256 attendu du gestionnaire
ecec0fe67f3df9658c4a42e20d9e2c8f0aabf60d9584ec225f877c57b4302cd0SHA-256 du fichier sélectionné
Reproduire le résultat vous-même.
Extrayez le ZIP dans un nouveau dossier et exécutez la commande. Node.js 24 ou ultérieur est requis. Aucune dépendance npm n’est nécessaire. L’exécution utilise des bases SQLite temporaires et écrit verification.local.json.
node verify.mjsZIP SHA-256
4dba2dd9b34e0e39bbc859e5ac7f4cd9bb8b42ab12246736edbdafe919de57daREPRODUCTION / MÊME EXÉCUTANT
Même paquet. Même méthode.
Le ZIP public a été téléchargé puis réexécuté sans modification. Cela confirme l’intégrité du paquet et la répétabilité de l’exécution existante dans l’environnement indiqué.
- Vérification externe indépendante
- Non réalisée
- Couverture comportementale
- Les mêmes 347 requêtes ; aucun nouveau scénario
- ZIP téléchargé
- Concordance exacte du SHA-256
- Fichiers originaux
- 11 sur 11 inchangés
Cette répétition n’établit ni l’exhaustivité des tests, ni la nouveauté ou la difficulté de la propriété, ni des conclusions plus fortes sur la maturité des programmes.
Reproduction lors de la création du site ·
Exécutant : Codex dans le cadre de la création du site. Nouveau répertoire sur le même hôte ; aucun test sur une seconde machine ni aucune isolation réseau ne sont revendiqués.
Comment les assertions sont-elles comptées et que signifie PASS ?
Statut du rapport enregistré: PASS.
1 773 assertions = 1 763 vérifications de l’exécution initiale + 10 contrôles d’empreintes de fichiers. Il s’agit d’assertions exécutées, pas de scénarios uniques. PASS signifie que cet ensemble s’est terminé sans violation de ses contrôles ; cela n’établit pas son exhaustivité.
Pourquoi le premier comparateur a-t-il renvoyé FAIL ?
Les durées d’exécution varient. L’indice de la requête créant l’enregistrement peut aussi varier dans le groupe concurrent. Les deux exécutions conservent une ligne : une réponse 201 et quinze réponses 200. Les scénarios séquentiels sont comparés dans leur ordre initial.
Le premier comparateur exigeait à tort le même gagnant concurrent. Il a renvoyé FAIL alors que le vérificateur inchangé réussissait. La règle de comparaison a été corrigée pour correspondre à la propriété déclarée ; le résultat initial est conservé.
ZIP SHA-256
33e792457b56f56f4ef2a5ad9971deaa2133eb2ca4f30604f6baf4962329dfdeLa prochaine étape est une reproduction par une autre personne sur une autre machine, avec un rapport attribué identifiant l’évaluateur, l’environnement, la commande, l’empreinte du paquet, le résultat et les limites. Aucun rapport de ce type n’est encore publié ici. L’exhaustivité des tests et la portée de la propriété nécessitent une revue distincte de la spécification et des scénarios.
05Limites
Ce que ce résultat établit.
- Les fichiers fournis ont été vérifiés par 347 requêtes de contrôle. Les entrées HTTP arbitraires n’ont pas été énumérées exhaustivement.
- Les 16 appels concurrents initiaux n’ont pas emprunté la branche de repli après concurrence d’insertion, et toutes les entrées utilisaient en. Les tests complémentaires F-1 / F-2 sont présentés ci-dessus. La concurrence distribuée et Cloudflare D1 n’ont pas été testés.
- La base a été fermée puis rouverte proprement. La reprise après crash et la coupure d’alimentation n’ont pas été testées.
- Un accusé de réception confirme un enregistrement en base, pas un examen humain, une livraison de message ou une action physique.
La vérification a été conçue et exécutée lors du développement de cet exemple. Ce n’est pas un audit externe indépendant.
Les empreintes relient les octets au manifeste publié. Elles ne remplacent pas une signature d’éditeur dont la confiance est établie indépendamment.
Ce cas concerne un mécanisme de ce site, pas la maturité des programmes de recherche.
