{
  "schema": "nutricoach-telegram-checkin-stepper-task-10-r71b-maintenance-runtime-v2",
  "task_id": "st_01a05bc2",
  "amendment_task": "adversarial-blocker-closure",
  "status": "DONE_SOURCE_ONLY",
  "blocker_count": 0,
  "worktree": "/home/cube/projects/richard/.worktrees/nutricoach-v150-combined",
  "scope_guards": {
    "git_or_github_actions": 0,
    "network_or_provider_actions": 0,
    "customer_actions": 0,
    "package_preseal_live_profile_credential_root_creations": 0,
    "commits": 0
  },
  "blocker_closure": {
    "maintenance_lock_wrong_gid": {
      "red": "wrong supplementary gid 125 returned noop_maintenance and consumed the hold",
      "green": "OwnedMaintenanceDirectory carries the profile uid/gid; lock, active, consuming and audit opens validate both exactly",
      "regression": "wrong gid returns deny/filesystem_contract with byte-identical artifact snapshot, claim/send/edit/network zero"
    },
    "negative_matrix": {
      "parameterized_cases": 51,
      "dedicated_wrong_gid_regression": 1,
      "total_rejections": 52,
      "all_passed": true,
      "categories": [
        "credential missing/empty/malformed/oversized/noncanonical/extra/hash/symlink/hardlink/mode/file-kind/owner",
        "hold empty/malformed/oversized/noncanonical/extra/early/expired/replay",
        "candidate/config/route/customer/card-slot/day binding mismatch",
        "directory symlink/mode/gid/owner",
        "active, lock and audit symlink/hardlink/mode/file-kind/gid/owner",
        "simultaneous active+consuming, partial temp and partial audit"
      ],
      "per_case_oracle": {
        "decision": "deny",
        "publication": "refused",
        "claim_calls": 0,
        "record_calls": 0,
        "send_calls": 0,
        "edit_calls": 0,
        "network_calls": 0,
        "message_id": null,
        "maintenance_audit_digest": null,
        "delivery_ledger_created": false,
        "artifact_snapshot_changed": false
      }
    },
    "strict_tests": {
      "legacy_maintenance_additions_restored": [
        "tests/gateway/test_nutrition_weekly_operations_topic59.py",
        "tests/cron/test_physique_inline_card.py"
      ],
      "new_strict_test_and_support_files": 7,
      "branded_projection_types": true,
      "typed_protocol_and_dataclass_fakes": true,
      "public_publication_ledger_injection_seam": true,
      "private_ledger_access": false,
      "untyped_lambdas": false,
      "Any_cast_ignore_noqa": false,
      "sleeps_or_polling": false
    },
    "hash_inventory": "complete for all 11 runtime propagation files and every retained changed/new strict test/support file"
  },
  "verification": {
    "wrong_gid_red_green": "RED reproduced, GREEN 1 passed",
    "full_negative_matrix": "52 passed",
    "focused_maintenance": "61 passed in 0.76s",
    "affected_suite": "240 passed in 6.92s",
    "ruff": "PASS all 11 runtime files and retained changed/new tests/support",
    "ty": "PASS all typed runtime and retained changed/new tests/support",
    "basedpyright_fresh": "0 errors, 0 warnings, 0 notes across all typed runtime and retained changed/new tests/support",
    "lsp": "All established changed files and six of seven strict new test/support files report no diagnostics. The persistent server retained a stale pre-merge snapshot for nutrition_weekly_maintenance_adversarial_support.py; document symbols showed current local HoldBinding while diagnostics referenced the deleted split import. Fresh basedpyright over the exact current file set is the clean equivalent.",
    "compileall": "PASS",
    "import_smoke": "PASS",
    "no_excuse": "PASS: no violations in 11 strict core/test files",
    "ast_escape_hatch_scan": "PASS: no Any/cast/ignore/noqa/broad catch/sleep/skip/xfail in maintenance core or strict tests",
    "generated_bytecode_after_cleanup": 0,
    "patch_backup_or_reject_files_after_cleanup": 0
  },
  "manual_zero_call_qa": {
    "same_day_dispositions": ["noop_maintenance", "noop_maintenance"],
    "audit_count": 1,
    "delivery_ledger_unchanged_same_day": true,
    "current_day_send_calls": 0,
    "current_day_edit_calls": 0,
    "network_calls": 0,
    "tomorrow_disposition": "sent",
    "tomorrow_fake_send_calls": 1,
    "scheduler_processed": true,
    "scheduler_mark_job_run": [true, null],
    "scheduler_status": "maintenance no-op completed"
  },
  "privacy": {
    "audit_has_card_text": false,
    "audit_has_raw_customer_key": false,
    "audit_has_raw_telegram_identity": false,
    "sent": false,
    "delivered": false,
    "message_id": null,
    "provider_receipt": null,
    "provider_calls": 0,
    "network_calls": 0
  },
  "runtime_hashes": {
    "gateway/platforms/nutrition_weekly_maintenance_contract.py": "f77384718fc9af8212e52a4f15f5dcff2cced0fe0ec4a8c0abc0d3ef0735a619",
    "gateway/platforms/nutrition_weekly_maintenance_io.py": "9df3f5f368e16fa6019674620a1fa06ba767ac13babd130b0ea79655ab7cdb60",
    "gateway/platforms/nutrition_weekly_maintenance_store.py": "1affe722d322de8d4e7ae40920dfbcd25a5915008c732193123241eb4e26e5fa",
    "gateway/platforms/nutrition_weekly_operations.py": "4a3f27b30d0c639ce6b0020e5f81a386bae22b3a0a5568a497d0a8b4dcbc3fe6",
    "gateway/platforms/nutrition_weekly_operations_publication_contract.py": "c75a8858d93a824957755be148e9ddd6eca52cd4459ef3494965865829ad52c6",
    "gateway/platforms/nutrition_weekly_dispatch_result.py": "3e537d9a8f7afd6cb3fb16b51fd5911e67eb5413e43ff839f7c71e6fa80fe6f2",
    "gateway/platforms/nutrition_weekly_dispatcher.py": "9d1a4ec3756fef57f6837f71a9bdcea42ea8ee6d557a9f0d7927394d088ca16b",
    "gateway/platforms/telegram_weekly_host_dispatch.py": "6e5999940ec311ad2f2563fd2534a05ca5dbed62726aca4bfad27d6d1bbc3f88",
    "gateway/platforms/telegram.py": "5a8845e9e764f868f4e7509233309a0ed7c4c6419584f847977ba6000eb6f4f7",
    "cron/physique_inline_card.py": "16788d449f33b8e0f6c0e8a5db55d1455b3ee694a984307283b07a6b9db29b67",
    "cron/scheduler.py": "07fddef7d2df68e2ddee243f5c0901eb15054f91a642dcd96723a139e30f461f"
  },
  "test_and_support_hashes": {
    "tests/gateway/nutrition_weekly_maintenance_support.py": "810ab4768633142b11b9889f08a79789dde79001ae82f7cb7bc6bc1b1213df5d",
    "tests/gateway/nutrition_weekly_maintenance_fs_mutations.py": "619b6188e3df38613bd166e4c372b46424888a164d069a25ab4d07a07e611d7f",
    "tests/gateway/nutrition_weekly_maintenance_adversarial_support.py": "8cef1f9a7bcccecab843f1c767d870087f57b1d36ce41f48d6f2d5cddc919e25",
    "tests/gateway/test_nutrition_weekly_topic59_maintenance.py": "4100ab82d11b78a78cffceb6c1150c6ffc448d8fa5b4b97ec8a5b27cc3b4cab7",
    "tests/gateway/test_nutrition_weekly_topic59_maintenance_failures.py": "bd6fc29371c02c8f627f60d8879ccf77a0596c6e5ed13b91938f6212d2364664",
    "tests/gateway/test_nutrition_weekly_dispatcher_maintenance.py": "89f21c1535039ce58e7bc404727fe806a6976bdef6708fa2a31b292e836be7fe",
    "tests/cron/test_physique_inline_card_maintenance.py": "4ce999edcfb4949c6df077026c3dd5282b80ffecc0e268786f442a325c1e357e",
    "restored/tests/gateway/test_nutrition_weekly_operations_topic59.py": "d0535437501dc31c7a14de07dab1f27eb96a3d8c27efcf113101827b7055661a",
    "restored/tests/cron/test_physique_inline_card.py": "931215dab7c03e4cf1eec8e9da96a5895e8ba119c99843aa18036ddd3eaaab02"
  },
  "pure_loc": {
    "nutrition_weekly_maintenance_contract.py": 137,
    "nutrition_weekly_maintenance_io.py": 107,
    "nutrition_weekly_maintenance_store.py": 214,
    "nutrition_weekly_operations.py": 158,
    "nutrition_weekly_dispatch_result.py": 14,
    "nutrition_weekly_dispatcher.py": 250,
    "telegram_weekly_host_dispatch.py": 217,
    "physique_inline_card.py": 154,
    "nutrition_weekly_maintenance_support.py": 231,
    "nutrition_weekly_maintenance_fs_mutations.py": 51,
    "nutrition_weekly_maintenance_adversarial_support.py": 237,
    "test_nutrition_weekly_topic59_maintenance.py": 85,
    "test_nutrition_weekly_topic59_maintenance_failures.py": 70,
    "test_nutrition_weekly_dispatcher_maintenance.py": 30,
    "test_physique_inline_card_maintenance.py": 21,
    "inherited_large_files": ["gateway/platforms/telegram.py", "cron/scheduler.py"]
  },
  "done_claim": {
    "claim": "All four adversarial blockers are closed in source with no package or live effects.",
    "single_responsibility": "PASS",
    "boundary_purity": "PASS: canonical frozen Pydantic authority/hold/audit documents",
    "variant_and_binding_coverage": "PASS: 52 deterministic rejection cases plus valid, crash, concurrency and next-day controls",
    "escape_hatches": "PASS",
    "defensive_layer": "PASS: ownership and filesystem checks remain at the openat boundary",
    "tests": "PASS: wrong lock gid, every negative class, zero-call publication and truthful cron status are locked",
    "parameter_bloat": "No new production parameter object is a throwaway wrapper",
    "redundant_verification": "Only contract-required durable write readback remains",
    "negative_naming": "PASS",
    "logging": "NOT_TOUCHED"
  }
}
