{
  "title": "M6 R3.1 审批受理真实API与worker进程恢复专项",
  "recordedAt": "2026-11-03T01:19:50.094027+00:00",
  "fagoCommit": "cfb4de6f72f951295bc2cc1c38254a9a05147d2e",
  "schemaVersion": 48,
  "runtime": "fago-form-approval-v3",
  "compiler": "fago-compiler-v5",
  "changes": "Only integration tests added; no production code, migrations, dependencies, HTTP contract or frontend changes.",
  "source": "fago/fago-server/apps/fago-server/workflow_accepted_process_test.go",
  "scenarios": [
    {
      "name": "crash-revoked-session",
      "setup": "actual accepted HTTP; original sessions revoked; HTTP read/resume401002; runtime drained; resource row blocks business commit",
      "fault": "SIGKILL actual leased worker and wait",
      "proof": "new OS worker expires old attempt and continues committed signal.accepted under higher fence in draining runtime"
    },
    {
      "name": "graceful-revoked-permission",
      "setup": "current decide removed but start retained; fresh-session HTTP read/resume403001; resource row blocks business commit",
      "fault": "SIGTERM actual leased worker and wait",
      "proof": "SQL cancellation and process exit; new worker completes previously committed continuation despite current decide revocation"
    },
    {
      "name": "lost-response-api-crash",
      "setup": "terminal client adapter discards actual202 and returns error without receipt; actual API then SIGKILLed",
      "fault": "restart actual API and query original command; worker then SIGKILLed in resource-lock window and restarted",
      "proof": "query is passive; original frozen request replay after done returns same result without a second vote"
    }
  ],
  "invariants": [
    "real builtin profile and actual race-enabled cmd/api/cmd/worker; no mock main",
    "parent fixture prepares task and admission presence only; no parent worker RunOnce",
    "140 automatic successors cross128-step budget; continued checkpoint and final done",
    "old attempt fence1 expired; subsequent continued/done fence>1; no partial instance-version advance before unlock",
    "exactly one human decision and original command actor retained",
    "automatic events actor0/work_fence>1; durable job done; resource slot and grant released",
    "owned children waited before releasing lock/cleaning fixture; no original development service mutation"
  ],
  "responseLossBoundary": "Only transaction-committed/client-receipt-unavailable window; not API kill before DB commit, not a production fault-injection hook.",
  "databaseMatrix": {
    "postgres": {
      "result": ".cache/m6-r31/integration-20261103T011359Z/postgres-result.json",
      "status": "passed",
      "applicationFilter": "^TestIntegrationWorkflowAcceptedSignalProcess$",
      "applicationTopLevelPassed": 1,
      "applicationSubtestsPassed": 3,
      "migrationTopLevelPassed": 18,
      "race": true,
      "cleanup": true,
      "actualAPIProcesses": 4,
      "actualWorkerProcesses": 6,
      "transport": "plain HTTP through actual authenticated API; crypto protocol matrix belongs to prior HTTP increment"
    },
    "mysql": {
      "result": ".cache/m6-r31/integration-20261103T011530Z/mysql-result.json",
      "status": "passed",
      "applicationFilter": "^TestIntegrationWorkflowAcceptedSignalProcess$",
      "applicationTopLevelPassed": 1,
      "applicationSubtestsPassed": 3,
      "migrationTopLevelPassed": 18,
      "race": true,
      "cleanup": true,
      "actualAPIProcesses": 4,
      "actualWorkerProcesses": 6,
      "transport": "plain HTTP through actual authenticated API; crypto protocol matrix belongs to prior HTTP increment"
    }
  },
  "checks": {
    "workspace": "26 modules race/vet passed; default linker; integration env disabled here",
    "independent": "changed apps/fago-server full-package GOWORKoff race passed with fresh module cache and source copy; default linker and checksum verification retained",
    "moduleBoundaries": "28 metadata modules explicit requires/DAG/internal passed;26 workspace modules",
    "goStyle": "gofmt,new-file120-character check and git diff checks passed",
    "readOnlyReview": "no must-fix findings",
    "golangciLint": "not installed; not claimed passed",
    "frontendAndContract": "unchanged; not rerun; prior HTTP increment evidence retained",
    "dm": "not rerun; no new DM certification"
  },
  "previousHTTPMatrix": "m6-r31-accepted-approval-http.json",
  "failedAttempts": [
    {
      "directory": ".cache/m6-r31/integration-20261103T011250Z",
      "reason": "new assertion used nonexistent completed attempt state instead of existing continued/done; test corrected then complete dualDB rerun; no production change",
      "cleanup": true
    }
  ],
  "limitations": [
    "not full online Resume/Cancel versus live-worker competition matrix",
    "command/timer/ready/external combined recovery pending",
    "remaining accepted command kinds and W07 other resources pending",
    "full W10/W12 multiversion rolling/backlog/lockwait/recovery/capacity baseline pending",
    "actual browser product/docs acceptance pending; Work local browser disabled",
    "not production/seven-database/DM certification"
  ],
  "logs": [
    {
      "path": ".cache/m6-r31/accepted-process-postgres-release.log",
      "sha256": "8c51c4567463a75dcf461844405a48fde502206ba10aae5e650a00e5bfa0aeff"
    },
    {
      "path": ".cache/m6-r31/accepted-process-mysql-release.log",
      "sha256": "01e1417848a05661f2314ef36bb3b3d265a53090d109f2e61d429bf2dbf83e92"
    },
    {
      "path": ".cache/m6-r31/accepted-process-workspace-release.log",
      "sha256": "f58c265a9e5c7fe822de411c0662c03af55e6e06e007b53c63caba931c85c873"
    },
    {
      "path": ".cache/m6-r31/accepted-process-independent-release.log",
      "sha256": "f2a5ddea56a4b4769402504b733d146b5f7c321424a885a1668661af9d4d078c"
    }
  ],
  "privacy": "Only scope/counts/invariants/log digests; no raw bodies, opinions, credentials, PIDs, pool owners or original environment recovery materials."
}
