Repository navigation
arch: tendcf-agent is Android-only; Linux/macOS run CFEngine + tendcf-validate (D45) - #36
Conversation
…tendcf-validate (D45, operator 2026-11-02)
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: efe04ede-4a1d-48a5-8492-c01e243d5e75) |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
…en-list facts: CLT python3 3.9.6, DC-11 interpreter chain, schema_ceiling writer)
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: bcf71677-0fea-47b0-8f8a-c6ef5fb91895) |
…chema descriptions to D45, v5 takeover point closed, interpreter trust boundary, privilege boundary open, strike superseded placement)
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: 5438ac70-53c9-4e24-a290-e1665a54ac3e) |
Records djbclark's rulings of 2026-11-02 (relayed by the djbclark-ade lead 7c58015b), resolving a contradiction in architecture-DEFINITIVE-v3.md: R1/R4 named tendcf-agent only for Android, while §1's diagram, §8/D18 and §9 ran the projector and index 'inside tendcf-agent' on every host.
Rulings: A1 tendcf-agent is Android-only, in Kotlin; Linux and macOS run CFEngine plus a small validate-and-project command run before cf-agent reads host_specific.json, no daemon. A2 that command is Python, promoting bin/projector.py. A3 built after schema v5 lands, before any further host is enforced.
Change (docs and comments only, 14 files): new decision D45; D18 amended; §1, §6, §8, §9, §9.6, §9.8, §12, §13 updated; dated amendment notes on the goal-file, projector and schema-v5 reconciliations (decision text kept); GLOSSARY entry; comment headers in bin/projector.py, bin/schema_lint.py and check.yml. The command is named tendcf-validate. Schemas and fixture data are untouched: the device-trust 'agent' entry (const 'tendcf-agent') is listed as an open point, not edited.
Open for the operator (DEFINITIVE §12, nothing decided here): trigger (exec_command or a separate step; every run or per new goal file); first-build validation scope vs the full §9 validator; the rest of the device-side gate on Linux/macOS (TUF fetch, local yes, stored baseline, policy-tree digest); the device-trust agent entry (id, what sha256 binds); the rfc8785 dependency; macOS python3 and install prefix; SQLite index owner off Android; the v5 detector-takeover point.
Local: xref_lint 0, schema_lint OK, py_compile OK.
Author: Claude Opus 5.5 high (omp slice); lead: Opus 5.5 high.
Reviews (design ruling, two independent seats):
python3 -Iwithout-P). Fixes: the name tendcf-validate attributed to the amending session, not the operator; missed live spots (paper :1865, projector P-8); the v5 takeover point closed by A1; open-list facts (CLT python3 3.9.6 on the review machine < requires-python 3.11; minimal Debian has no python3; DC-11 interpreter chain; agent_map id timing vs v5; who writes schema_ceiling).-Ias a recommendation, not settled; root execution as the current Linux deployment fact, privilege boundary open; superseded 'inside tendcf-agent' struck.The two reviews do not disagree on any ruling; astra refines four of Fable's fixes.
Operator decisions now listed in DEFINITIVE §12 (none taken here): validate-to-CFEngine handoff protocol; runtime trust boundary (interpreter, stdlib, rfc8785) under DC-11; privilege split; first-build validation coverage; owners of the remaining device duties off Android (TUF fetch, local yes, stored baseline, schema_ceiling row); the agent wire id and digest scope, best decided before v5 freezes.
Note
Low Risk
Comment and architecture-doc updates only; no runtime, schema structure, or projector behavior changes. Residual risk is future implementers misreading unresolved §12 open points, not this diff breaking anything deployed today.
Overview
Records the 2026-11-02 operator ruling (D45) that resolves a doc contradiction: tendcf-agent is Android-only (Kotlin), while Linux and macOS run CFEngine plus
tendcf-validate— a non-daemon validate-and-project commandbin/projector.pyis promoted to — before cf-agent readshost_specific.json.Architecture corpus is updated end-to-end: new D45 and an amended D18 (JSONL capture everywhere; SQLite index owner on Linux/macOS still open), plus §1/§8/§9/§12/§13 and a long §12 open-questions list (trigger, validation scope, TUF/baseline/digest ownership,
device-trustagent entry binding, Python/rfc8785trust boundary, etc.). Reconciliation and guide/paper docs get dated amendment notes (strikethrough on old “inside tendcf-agent on every host” wording) without reopening the core projection decisions.CI/lint narrative now states the §13 golden gate is the normative projector on Linux/macOS and the Kotlin port must match the same bytes (R22). Schema descriptions only (
agent_map,report-row) note D45; wire ids and fixtures are unchanged.No new binaries, no projector logic changes — documentation and comments only.
Reviewed by Cursor Bugbot for commit 2ea90b3. Bugbot is set up for automated code reviews on this repo. Configure here.