{ "purpose": "Actual failing evidence; focused reruns are not added to final full-suite totals.", "originalBrowser": { "id": "RD21", "career": { "staleStatus": 200, "expectedFirstSummary": [ "First editor committed summary" ], "actualSummary": [ "Initial summary" ], "lostFirstEdit": true }, "job": { "staleStatus": 204, "expectedFirstTitle": "First editor committed title", "actualTitle": "Original job title", "lostFirstEdit": true }, "safetyQualification": "FAIL: stale writes can overwrite acknowledged edits", "limitation": "This passing characterization records observed behavior; it does not accept unsafe stale writes or provide a new revision contract. Creation-intent idempotency remains separate." }, "native": [ { "stage": "Baseline Career stale success and rejected-operation partial commit", "artifact": ".artifacts/rd21-career-red/rd21-career-red.trx", "sha256": "8bab2511c7fff78ea365444680d00511a2894f6913d447f037f2cf2a0b4ece30", "counters": { "total": "2", "executed": "2", "passed": "0", "failed": "2", "error": "0", "timeout": "0", "aborted": "0", "inconclusive": "0", "passedButRunAborted": "0", "notRunnable": "0", "notExecuted": "0", "disconnected": "0", "warning": "0", "completed": "0", "inProgress": "0", "pending": "0" }, "failures": [ { "name": "JobTrackerApi.Tests.Rd21CareerPersistenceTests.Identity_failure_rolls_back_canonical_children_history_and_projection", "message": "Assert.Empty() Failure: Collection was not empty\r\nCollection: [CareerProfile { Certifications = [], CreatedAtUtc = 2026-10-23T05:48:16.1454440+00:00, Education = [], Experiences = [], Id = 1, \u00b7\u00b7\u00b7 }]" }, { "name": "JobTrackerApi.Tests.Rd21CareerPersistenceTests.Independent_stale_snapshot_cannot_replace_acknowledged_career_edit", "message": "Assert.IsType() Failure: Value is not the exact type\r\nExpected: typeof(Microsoft.AspNetCore.Mvc.ConflictObjectResult)\r\nActual: typeof(Microsoft.AspNetCore.Mvc.OkObjectResult)" } ] }, { "stage": "Generic guard already present; related cover/application draft writers still overwrite persisted approved text", "artifact": ".artifacts/rd21/native-red/rd21-job-red.trx", "sha256": "57b7aef48c879b53ec57080a133ddbad04ac7f174efbcea85bbc49426a02edc7", "counters": { "total": "4", "executed": "4", "passed": "2", "failed": "2", "error": "0", "timeout": "0", "aborted": "0", "inconclusive": "0", "passedButRunAborted": "0", "notRunnable": "0", "notExecuted": "0", "disconnected": "0", "warning": "0", "completed": "0", "inProgress": "0", "pending": "0" }, "failures": [ { "name": "JobTrackerApi.Tests.Rd21JobPersistenceTests.Related_text_save_cannot_silently_replace_a_newer_acknowledged_draft(coverLetter: False)", "message": "Assert.Equal() Failure: Strings differ\r\n \u2193 (pos 0)\r\nExpected: \"First approved text\"\r\nActual: \"Stale snapshot text\"\r\n \u2191 (pos 0)" }, { "name": "JobTrackerApi.Tests.Rd21JobPersistenceTests.Related_text_save_cannot_silently_replace_a_newer_acknowledged_draft(coverLetter: True)", "message": "Assert.Equal() Failure: Strings differ\r\n \u2193 (pos 0)\r\nExpected: \"First approved text\"\r\nActual: \"Stale snapshot text\"\r\n \u2191 (pos 0)" } ] }, { "stage": "Legacy Identity endpoint still bypasses canonical save boundary", "artifact": ".artifacts/rd21/legacy-cv-red/legacy-cv-red.trx", "sha256": "f59b27ddf3718bb2a9f2a7a2fee96179b2f4dd3af0e25e7b4c0ba0c8276837a1", "counters": { "total": "3", "executed": "3", "passed": "0", "failed": "3", "error": "0", "timeout": "0", "aborted": "0", "inconclusive": "0", "passedButRunAborted": "0", "notRunnable": "0", "notExecuted": "0", "disconnected": "0", "warning": "0", "completed": "0", "inProgress": "0", "pending": "0" }, "failures": [ { "name": "JobTrackerApi.Tests.AuthAndSystemControllerTests.Legacy_profile_endpoint_cannot_bypass_canonical_revision_guards(text: \"stale text\", structured: null)", "message": "Assert.IsType() Failure: Value is not the exact type\r\nExpected: typeof(Microsoft.AspNetCore.Mvc.BadRequestObjectResult)\r\nActual: typeof(Microsoft.AspNetCore.Mvc.NoContentResult)" }, { "name": "JobTrackerApi.Tests.AuthAndSystemControllerTests.Legacy_profile_endpoint_cannot_bypass_canonical_revision_guards(text: \"\", structured: \"\")", "message": "Assert.IsType() Failure: Value is not the exact type\r\nExpected: typeof(Microsoft.AspNetCore.Mvc.BadRequestObjectResult)\r\nActual: typeof(Microsoft.AspNetCore.Mvc.NoContentResult)" }, { "name": "JobTrackerApi.Tests.AuthAndSystemControllerTests.Legacy_profile_endpoint_cannot_bypass_canonical_revision_guards(text: null, structured: \"{\\\"summary\\\":[\\\"stale\\\"]}\")", "message": "Assert.IsType() Failure: Value is not the exact type\r\nExpected: typeof(Microsoft.AspNetCore.Mvc.BadRequestObjectResult)\r\nActual: typeof(Microsoft.AspNetCore.Mvc.NoContentResult)" } ] }, { "stage": "Structured tailored CV replacement still overwrites approved text", "artifact": ".artifacts/rd21/structured-cv-red/structured-cv-red.trx", "sha256": "b297f11fa8a98de808470b630ef25ad49d32c4aa66a3e55ac9bfa12027997638", "counters": { "total": "1", "executed": "1", "passed": "0", "failed": "1", "error": "0", "timeout": "0", "aborted": "0", "inconclusive": "0", "passedButRunAborted": "0", "notRunnable": "0", "notExecuted": "0", "disconnected": "0", "warning": "0", "completed": "0", "inProgress": "0", "pending": "0" }, "failures": [ { "name": "JobTrackerApi.Tests.Rd21JobPersistenceTests.Structured_tailored_cv_snapshot_cannot_replace_a_newer_approved_document", "message": "Assert.Contains() Failure: Sub-string not found\r\nString: \"Professional Summary\\n- Stale CV evidence\"\r\nNot found: \"Approved CV evidence\"" } ] } ], "initialJobRed": { "observed": "Both stale and unversioned job snapshot tests returned NoContentResult instead of conflict after immediate SQLite acknowledgement check.", "limitation": "The initial runner reused its raw file path; that first two-case log was superseded. The retained later file is explicitly labeled as related-writer RED, not baseline job RED." } }