docs: tokenless (token-optional, local-only) path spec — ENG-1329 - #98
docs: tokenless (token-optional, local-only) path spec — ENG-1329#98jadoonf wants to merge 2 commits into
Conversation
Co-Authored-By: Farrukh Jadoon <fkjadoon94@gmail.com>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
@tixxdz requesting your review/discussion on this tokenless-path spec (ENG-1329 / fallback half of ENG-1346). The positions I'd most like your take on:
Happy to iterate here or take it to the §7 ratification session. |
jadoonf
left a comment
There was a problem hiding this comment.
Automated review-assist (agent-generated, advisory — not an approval or block).
Verified against main: doc-only as titled (one new file, docs/tokenless-path-spec.md). The §2 audit is accurate — the token's only uses are createAgent (src/action.js:159), mergedNetPoliciesAsYAML (src/action.js:183), and the sensor upload via /etc/default/jibril; the real tokenless gate is the throw at src/action.js:37; the post-step pipeline is fully local; GARNET_SAR defaults to "true" (src/action.js:219) and jibril's agent engine skips registration under SAR. Contract fit is sound: no permalink is promised without the API — report_url goes empty ("omit rather than mislabel", ux-contract §1.1), and the CTA/local-only marker is correctly routed through a v6.2 testbed amendment, since v6.1 §1.7 locks fold subtext to "only the single garnet permalink — nothing else". Sequencing after the ENG-1355 port (v2.3.0 → tokenless in v2.4.0) is right; no file overlap with the port.
Two factual corrections:
- §4 footnote + Q3: the action already marker-scans —
src/pr-comment-plan.js:41(containsControlPlaneComment) returnsblocked-by-control-planeagainstCONTROL_PLANE_MARKERS(src/runtime-review.js:68). A tokenless run on a PR that already has an App comment stands down today. Q3 reduces to the ordering race (tokenless posts first, App posts later), which control-plane reconciliation already converges. - §4 "keep bundled observe-only policy": unverified — jibril's bundled sample (
jibril/etc/config/netpolicy.yaml) ships deny rules (example.com,uol.com.br,2.2.2.2). Recommend hardening Q4 into a phase-1 requirement: in tokenless mode the action writes a known observe-only policy rather than trusting whatever the resolved jibril version bundles.
Nit: "fails loudly" for present-but-invalid tokens = today's warn-and-continue (core.warning, job not failed); keep that meaning through implementation so it doesn't become setFailed.
CI: Build/dist verify ✅; smoke jobs skipped (docs-only).
…, vendored observe-only policy, warn semantics) Co-Authored-By: Farrukh Jadoon <fkjadoon94@gmail.com>
|
Folded the review-assist corrections into the spec (07599aa):
|
Summary
Spec-only draft (no product code):
docs/tokenless-path-spec.mddesigns the token-optional, local-only path for the action — ENG-1329 and the fallback half of ENG-1346.Key positions taken (for review/discussion):
createAgent,mergedNetPoliciesAsYAML, and Jibril's sensor upload. The whole post-step pipeline (profile JSON → Step Summary → standalone PR comment) is already local; Jibril already runs offline viaGARNET_SAR=truewith a bundled default netpolicy. Phase 1 needs no Jibril or control-plane changes.api_tokenabsent → local-only mode (skip registration + policy fetch, keep bundled observe-only policy, omit token lines from/etc/default/jibril, emptyreport_url/agent_id, fork PRs become tokenless runs instead of failures). Token present-but-invalid still fails loudly — no silent downgrade.Open questions in §9 (CTA vocab lock, waiting state, App+tokenless comment coexistence, jibril_version gate, phase-2 OIDC trigger).
Link to Devin session: https://app.devin.ai/sessions/4a7d213fd3174d2ea66412fe594480a4
Requested by: @jadoonf