This repository was archived by the owner on May 4, 2026. It is now read-only.
TCK-00613: FAC gates architecture alignment + security hardening (throughput-profile model)#709
Merged
Merged
Conversation
Collaborator
Author
# apm2-review-verdict:v1
schema: apm2.review.verdict.v1
pr: 709
sha: a9a40039f98cc3056040cc02207b069ed8f9eba1
updated_at: 2026-02-17T03:03:35Z
dimensions:
code-quality:
decision: deny
reason: 'FAIL: 0 blocker, 1 major findings'
set_by: ubuntu
set_at: 2026-02-17T02:55:12Z
security:
decision: deny
reason: 'FAIL: 0 blocker, 1 major findings'
set_by: ubuntu
set_at: 2026-02-17T03:03:35Z
findings:
- finding_id: f-709-code_quality-1771296903631584-0
type: code-quality
severity: MAJOR
summary: --no-wait fails when no FAC worker is alive
risk: --no-wait cannot be used to enqueue deferred gates because run_gates_via_worker rejects when no worker heartbeat exists.
impact: Any async FAC gate enqueue flow can fail spuriously when worker is not currently running, preventing job staging and breaking expected queue-only usage.
location: crates/apm2-cli/src/commands/fac_review/gates.rs:256
body: In run_gates_via_worker, --no-wait (wait=false) is rejected whenever no worker heartbeat is present. This closes the asynchronous dispatch path even though the validated job can still be safely persisted. It regresses the documented --no-wait behavior (return immediately after enqueue) and prevents queue usage in worker-less windows. Keep enqueue behavior for --no-wait unconditional, and only use heartbeat checks for inline/waiting execution paths.
evidence_digest: f5058f641d29e718530fb23e7a15608a91ce00f9750b5fbef7abca4b9e33f42f
evidence_pointer: none
timestamp: 2026-02-17T02:55:03Z
- finding_id: f-709-security-1771297408868286-0
type: security
severity: MAJOR
summary: Workspace integrity snapshots hash symlink target paths, not target contents
risk: An attacker can add or modify tracked symlink files so workspace integrity manifests never reflect changes to the linked target. This can bypass the workspace integrity gate by keeping snapshot hashes stable while executed content changes on disk.
impact: Mutated target files can carry unreviewed code or artifacts without detection, undermining hash-based workspace integrity checks and allowing untrusted changes to proceed through later FAC gates or tests.
location: crates/apm2-cli/src/commands/fac_review/gate_checks.rs:hash_file
body: hash_file hashes read_link() path bytes for symlink-tracked files instead of reading target contents. Gate snapshot/verify compare path hashes, so content mutations through a tracked symlink are invisible. Bind integrity checks to canonicalized target bytes or deny symlink indirections for tracked files so target-file content and mode changes are always included.
evidence_digest: df7963ab44af881190ee65fd4fab3c958ff4d07c57351693961af29faa710833
evidence_pointer: none
timestamp: 2026-02-17T03:03:28Z |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
FAC Gate Status