Repository navigation
Conversation
QA / security review — 2026-10-31 (draft; not approved for merge)Evidence checked: PR #6 remains draft, targets Feature-branch changes: The source scanner had a demonstrable false negative for quoted External security context: GitHub's September 17, 2026 Actions execution-protections GA says its default Remaining blockers: Current-head CI must complete green (including new workflow-security tests, frontend build, Windows checks and integration gates); a human must review the scoped YAML heuristics and evidence quality. The detector is not a full YAML/inter-job trust interpreter, dynamic |
Simulated senior-engineering QA follow-up — 2026-10-31 (COMMENT only; not approval)Current feature head remains Source-review edge case requiring a focused regression: Independent human code/security review is still absent. Release blocker #10 stays open until host/workload quotas, restricted Git egress, scanner isolation, readiness, staging smoke/recovery/rollback and independent approval are verified. No code change, merge, deployment, or release-gate bypass in this follow-up. |
Simulated senior-engineering QA — 31 Oct 2026 (comment only; NOT approval)Fix: Current-head verification: Actions run #570 SUCCESS on External guidance: GitHub workflow syntax confirms Release decision: PR remains draft, no submitted human approval; production blocker #10 stays OPEN. CI does not independently verify enforced workspace quotas, restricted Git egress, scanner-worker isolation, truthful readiness, production-equivalent staging smoke/recovery/rollback, or security/operations sign-off. No merge, main write, deployment, waiver, or local execution of untrusted repository code was performed. |
Simulated senior-engineering QA — 31 Oct 2026 (not human approval)New verified fix: Current-head CI: run #574 completed SUCCESS on the exact SHA: backend 2,348 passed / 11 skipped / 161 warnings; frontend 242 passed / 0 failed plus type-check, lint and build; Windows 4 passed; PostgreSQL/pgvector/Redis and zero-key scripted evaluation gates passed. Previous green head Release decision: PR stays draft, with no submitted independent human review. Issue #10 remains OPEN: infrastructure-enforced workspace quotas, restricted Git egress, external scanner isolation, truthful readiness, staging smoke/recovery/rollback, and independent security/operations sign-off are not established by CI. No untrusted repository code was executed locally; no |
Simulated senior-engineering QA — 31 October 2026 (comment only; NOT approval)New source-backed correction: Workflow Verified exact-head CI: run #581 SUCCESS on Security/release boundary: The detector is still a bounded line-oriented YAML heuristic, not full expression/trust-flow analysis. GitHub workflow syntax and secure pull_request_target guidance remain applicable; GitHub's September 2026 update schedules default policy enforcement for affected public repositories on 2 December 2026. Independent human code/security review remains required. PR stays draft; production issue #10 remains OPEN pending independently enforced quotas, restricted Git egress, scanner isolation, truthful readiness, staging smoke/recovery/rollback and security/operations approval. No local untrusted code execution, main write, force-push, merge, deployment, approval waiver, or release-gate bypass. |
Simulated senior-engineering QA — 31 October 2026 (COMMENT only; not independent human approval)Scoped false-negative correction: Valid quoted YAML keys Exact-head verification: CI run #41219708546 completed SUCCESS on Current security guidance: GitHub's September 17 announcement says applicable public repositories' default Release decision: PR #6 stays draft, unmerged, pending independent human code/security review. Issue #10 remains OPEN with no independent evidence yet of host-enforced workspace quotas, restricted Git egress, scanner isolation, readiness validation, staging smoke/recovery/rollback, or operations/security approval. No local untrusted repository code execution, main write, force-push, merge, deployment, approval waiver or release-gate bypass was performed. |
Simulated senior-engineering QA — 31 Oct 2026 (COMMENT only; not independent approval)Scoped false-positive fix: Inline Verified exact-head CI: run #587 SUCCESS on No additional repository bug issues found; issue #8 still tracks historical Release decision: BLOCKED. PR remains draft, awaiting independent human code/security review. Issue #10 stays OPEN pending independently enforced workspace quotas, restricted Git egress, scanner isolation, truthful readiness, staging smoke/recovery/rollback evidence and security/operations approval. No untrusted repository code was executed locally, and no main write, force-push, merge, deployment, human-approval waiver or release-gate bypass was performed. |
Simulated senior-engineering QA — 1 Nov 2026 (COMMENT only; not human approval)Verified targeted fix: 0fadc56993f99756ed96d827ad55effd060b6bda extends the existing MEDIUM-confidence Regression evidence: Six new cases passed: three direct repository inputs (plain, single-quoted and double-quoted keys) and three negatives (environment variable, ordinary Residual risks: This is line-oriented passive inspection, not complete YAML expression, trust-flow or workflow execution analysis. GitHub's September 17, 2026 policy announcement schedules default Release decision: PR #6 stays draft, unmerged for independent human code/security review. Issue #10 remains OPEN / production BLOCKED until independent host/workload workspace quotas, restricted Git egress, scanner isolation, readiness, staging smoke/recovery/rollback and security/operations approval are verified. No local execution of repository code, write to |
Simulated senior-engineering QA — 1 November 2026 (COMMENT only; not human approval)Source-backed false-negative fix: YAML 1.2.2 permits a UTF-8 byte-order mark at the start of a document. The workflow scanner decoded it as U+FEFF, which hid first-line Verified exact-head CI: run #41234999770 completed SUCCESS on Security and release: This is a bounded passive YAML heuristic, not a complete parser or security certification. GitHub privileged-workflow guidance remains applicable; affected public repositories' default |
Simulated senior-engineering QA — 1 November 2026 (COMMENT only; not human approval)Verified narrow false-negative correction: GitHub documents Exact-head CI: run #595 SUCCESS on Decision: PR #6 stays OPEN / DRAFT / UNMERGED, awaiting independent human code/security review. Issue #10 stays OPEN: host-enforced per-scan quotas, restricted Git egress, scanner isolation, truthful readiness, staging smoke/recovery/rollback and security/operations approval require independent infrastructure evidence. No production gate waiver. No local execution of untrusted repository code, default-branch write, force-push, merge, or deployment. |
Simulated senior-engineering QA — 1 November 2026 (COMMENT only; not independent approval)Source-backed false-positive correction: The contextual Verified exact-head CI: run #597 SUCCESS on Release decision: Keep PR draft and unmerged for independent human code/security review. Issue #10 remains OPEN, with production BLOCKED pending independent workspace quotas, restricted Git egress, scanner isolation, truthful readiness, staging smoke/recovery/rollback and security/operations signoff. No untrusted repository code was executed locally; no |
|
Simulated senior-engineering QA follow-up (1 Nov 2026; not human approval): Found and corrected a false negative for privileged |
|
Simulated senior-engineering QA follow-up (2026-11-01): step-leading |
|
Simulated senior-engineering QA — 1 Nov 2026 (not independent human approval). Found a source-backed false negative: privileged |
Track step boundaries before skipping YAML block scalar headers and use key-column indentation so sibling uses/with inputs remain visible. Add focused positive and negative regression cases.
|
Simulated senior-engineering QA follow-up (1 Nov 2026; not independent human approval):
|
Purpose
Add a passive, evidence-backed GitHub Actions Workflow Supply-Chain Lens to RepoLens, using existing scanner evidence and fail-closed coverage reporting.
User-visible capability
permissions: write-alland mutable external action/image references with source line evidence.pull_request_targetPR-head checkout risks only when the reference occurs within the same checkout step; no claim of a confirmed exploit.StaticFindingresults into the existing evidence store.Architecture and 100-feature review
docs/FEATURE_BATTLE_2026.mdrecords 100 candidate ideas, simulated five-perspective senior engineering ratings, a shortlist, and a four-design architecture comparison.Hardening and regression fixes
Verified CI — 31 October 2026
5e93115c61b935af1b54232f6c884bbd3cd9300b./health/readyor production release preflight.Follow-up simulated QA — 31 October 2026 (current head)
on.push.branchesvalue namedpull_request_targetwas mistaken for an actual privileged event. The event detector now recognizes only direct children of the top-levelondeclaration.pull_request_targetevent.93e6864ab42632174352609c621b73c23c57192e: backend 2,339 passed, 11 skipped, 161 warnings plus integration/zero-key gates; frontend 242 passed, 0 failed plus type-check/lint/build; Windows reparse/path checks 4 passed. The previously green run #564 applies only to older head5e93115c61b935af1b54232f6c884bbd3cd9300b.Security boundaries and known limits
QA follow-up — 31 October 2026 (scope-aware write-all)
github-actions.write-all-token: a nestedenv.permissions: write-allor action input must not be reported as an actual workflow/jobGITHUB_TOKENpermission declaration. The bounded line-oriented scanner now requires workflow-root or directjobs.<job_id>mapping scope for this warning.permissionskeys (workflow environment, job environment, step environment, action input) and one positive job-levelpermissions: write-allamid misleading environment keys. Existing workflow-root and privileged checkout regressions are retained.c333223317aa6841021153ea56916a239bb60fa2: backend 2,344 passed, 11 skipped, 161 warnings; frontend 242 passed, 0 failed plus type-check/lint/build; Windows 4 passed; PostgreSQL/pgvector/Redis and zero-key scripted Evidence Investigator gates passed. The five new focused cases passed as part of the backend suite. Backend warnings match previous head (161); Node.js 20 action-runtime, Node deprecation and SQLAlchemy warnings remain maintenance items. No repository code was executed locally.QA follow-up — 31 October 2026 (non-action
usesscope)uses: example/action@v1key underenv:or an action'swith:is ordinary data, not a mutable external action reference. The passive scanner now skipsuseskeys nested in those mappings, without changing valid step/jobusesdetection.useskey.d9720294809e22b57608efda633186201c4098f5: backend 2,348 passed, 11 skipped, 161 warnings (four additional focused cases), frontend 242 passed, 0 failed plus type-check/lint/build, Windows security 4 passed, and required PostgreSQL/pgvector/Redis integration plus zero-key scripted evaluation gates passed. Backend warnings remained 161 versus previous green head; existing SQLAlchemy and Node.js deprecations remain. No repository code was executed locally.QA follow-up — 31 October 2026 (checkout input scope)
github-actions.privileged-untrusted-checkoutwarning to a directwith.refinput on the same checkout step;env.refis not an action checkout input. 01eb9ac adds two focused regressions: a negative environment-variable case and a positive checkout-input control.01eb9ac3401ce16301da068d41f5e8cda63a7d18: backend 2,350 passed, 11 skipped, 161 warnings (two added regressions); frontend 242 passed, 0 failed plus type-check/lint/build; Windows path/reparse tests 4 passed; PostgreSQL/pgvector/Redis integration and zero-key scripted evaluation gates passed. Previous run #574 passed on older headd9720294809e22b57608efda633186201c4098f5(2,348 backend passed, 11 skipped, 161 warnings). No backend warning-count increase; existing SQLAlchemy and Node/Actions runtime deprecation warnings remain.QA follow-up — 31 October 2026 (matrix/output uses scope)
strategy.matrix.include[*].usesandjobs.<id>.outputs.usesare ordinary data keys, but the previous scanner could label them mutable action references.c4a00d07a6ead03d4e9cdd5e67bf4a8fa669fa67now limits mutable-reference detection to directjobs.<id>.usesreusable workflows or stepusesdeclarations. This remains a bounded indentation heuristic, not complete YAML parsing.ba892407dc7f6e3ef15a2cda9f1c57165d098598adds two negative regression cases (matrix and job outputs) and one positive case preserving real reusable-job and step action findings. Verified exact-head CI: run #577 completed SUCCESS onba892407dc7f6e3ef15a2cda9f1c57165d098598: backend 2,353 passed, 11 skipped, 161 warnings (all three added regressions passed); frontend 242 passed, 0 failed with type-check/lint/build; Windows path/reparse 4 passed; backend migrations, PostgreSQL/pgvector/Redis integration and zero-key scripted evaluation gates passed. Previous-head run #575 passed on01eb9ac3401ce16301da068d41f5e8cda63a7d18with 2,350 backend passed / 11 skipped / 161 warnings. Backend warning count did not increase; existing SQLAlchemy, Node/Actions runtime and deprecated frontend dependency warnings remain maintenance items.QA follow-up — 31 October 2026 (quoted
usesYAML keys)'uses':/"uses":) at step/job scope were ignored by the workflow action-reference detector, potentially missing mutable action references and a contextual privileged checkout.2bd8b9aaccepts quoteduseskeys within the existing strict job/step scope.02c5dd7adds six focused regression cases: quoted step and reusable-job references (both quote styles), quoted environment data as a negative control, and quoted checkout preserving privileged PR-head context detection.02c5dd7021c99321ce7523ccc1b3afd5312f3339: backend 2,359 passed, 11 skipped, 161 warnings (all six new focused regressions passed); frontend 242 passed, 0 failed plus type-check/lint/build; Windows 4 passed; migrations, PostgreSQL/pgvector/Redis integration and zero-key scripted evaluation gates passed. Previous run #577 onba892407dc7f6e3ef15a2cda9f1c57165d098598had 2,353 passed, 11 skipped, 161 warnings. No backend warning-count regression. Existing SQLAlchemy and Node/Actions/dependency deprecation warnings remain maintenance debt. No repository code was executed locally.QA follow-up — 31 October 2026 (quoted permission/ref keys)
'permissions'/"permissions"at workflow or job scope and'ref'/"ref"under a checkout step'swithmapping were missed by the security detector. This is a false-negative coverage gap, not a demonstrated exploit.c5c152db23d6ab90abe4b65e6540a7e5a1241bd4updates only the two scoped matchers;8840f4ac280dbd2ddd905f9cb7f3072b9d21c90badds ten parametrized regression cases (four positive token-permission cases, two negative environment-permission cases, two positive privileged checkout cases, two negative environment-ref cases).8840f4ac280dbd2ddd905f9cb7f3072b9d21c90b. Backend 2,369 passed / 11 skipped / 161 warnings, including all ten new parametrized regressions; frontend 242 passed / 0 failed, type-check/lint/build; Windows security 4 passed; migration, PostgreSQL/pgvector/Redis integration, and zero-key scripted evaluation gates passed. Previous run #581 on02c5dd7021c99321ce7523ccc1b3afd5312f3339had 2,359 passed / 11 skipped / 161 warnings. No backend warning-count increase; SQLAlchemy and Node/Actions deprecations remain maintenance debt. No local repository code was executed.QA follow-up — 31 October 2026 (inline trigger mapping scope)
on: {push: {branches: [pull_request_target]}}contains a branch filter, not a privilegedpull_request_targetevent. The old inline matcher searched for that token anywhere in the value.2b65691distinguishes scalar, flow-list, and direct flow-map event declarations from nested mapping values. Regression commit384ac36adds six positive/negative event-declaration cases while preserving genuine privileged checkout findings.384ac3691d688354e951cac5f4d28ef23e562931. Backend 2,375 passed / 11 skipped / 161 warnings (all six added regression cases passed); frontend 242 passed / 0 failed plus type-check/lint/build; Windows path/reparse security 4 passed; migrations, PostgreSQL/pgvector/Redis integration and zero-key scripted evaluation passed. Prior green head8840f4ac280dbd2ddd905f9cb7f3072b9d21c90bhad 2,369 backend passed / 11 skipped / 161 warnings. No backend warning-count increase; existing SQLAlchemy and Node/Actions deprecations remain. No untrusted repository code was executed locally.QA follow-up — 1 November 2026 (fork repository checkout)
pull_request_target+actions/checkoutrule to detect a directwith.repository: ${{ github.event.pull_request.head.repo.full_name }}input. GitHub explicitly identifies this fork-checkout pattern as security-sensitive, even without an explicitwith.ref. It remains a MEDIUM-confidence contextual risk, not evidence of execution or exploit.019d31dcc35525854b117aadaa18921332b6dcca: backend 2,381 passed, 11 skipped, 161 warnings (six additional regression cases versus previous head), frontend 242 passed, 0 failed plus TypeScript/lint/build, Windows security 4 passed, and database migration, PostgreSQL/pgvector/Redis and scripted zero-key evaluation gates passed. The previous run #587 on384ac3691d688354e951cac5f4d28ef23e562931had 2,375 backend passed / 11 skipped / 161 warnings; no warning-count regression.QA follow-up — 1 November 2026 (UTF-8 BOM first-line coverage)
permissions: write-alloron: pull_request_target, suppressing relevant findings.utf-8-sigdecoding to strip only a leading UTF-8 BOM. Regression tests b14aa4a cover first-line token-permission detection and privileged PR-head checkout context with BOM, preserving line-number evidence.b14aa4aa1ecac8d127b5652266a9e1449ca19a7f. Backend 2,383 passed / 11 skipped / 161 warnings, including both new BOM regressions; frontend 242 passed / 0 failed with type-check/lint/build; Windows security 4 passed. Previous head019d31dcc35525854b117aadaa18921332b6dccapassed CI #41230145811 with 2,381 passed / 11 skipped / 161 warnings. No backend warning-count increase; SQLAlchemy, Node/Actions runtime and frontend dependency deprecations remain maintenance debt.QA follow-up — 1 November 2026 (explicit PR head/merge checkout refs)
github-actions.privileged-untrusted-checkoutdetector to direct checkoutwith.refinputs containingrefs/pull/${{ github.event.pull_request.number }}/heador/mergeunderpull_request_target. These patterns are documented in GitHub's June 18, 2026 checkout security guidance. A finding does not prove execution or an exploit, and checkout protections may block these inputs.env.ref, unprivileged events, and a different step. No untrusted repository code was executed locally.2b857249f173aff8ab0b68b03a4bfbdb4d3ea4c0: backend 2,392 passed / 11 skipped / 161 warnings (nine added regression cases), frontend 242 passed / 0 failed plus type-check/lint/build, Windows 4 passed, migration lifecycle, PostgreSQL/pgvector/Redis integration and zero-key scripted evaluation all passed. Previous run #593 onb14aa4aa1ecac8d127b5652266a9e1449ca19a7fhad 2,383 backend passed / 11 skipped / 161 warnings. No backend warning-count increase; SQLAlchemy, Node.js/Actions runtime and deprecated frontend dependency warnings remain maintenance debt.QA follow-up — 1 November 2026 (exact checkout input matching)
github-actions.privileged-untrusted-checkoutrule: thewith.refandwith.repositorymatchers accepted a PR-head expression as a prefix of a different string, such as${{ github.event.pull_request.head.sha }}-suffix. That value is not the exact PR-head SHA or fork repository; this is not evidence of an exploit.542d3barequires a complete, optionally quoted expression for the two inputs. Regression tests34da3ccadd three composed-value negative cases and two exact quoted-value positive controls. No untrusted repository code was executed locally.34da3cc0f6e23214e604c955454dd95657c22372: backend 2,397 passed / 11 skipped / 161 warnings (all five new regression cases passed); frontend 242 passed / 0 failed, type-check/lint/build; Windows 4 passed; migrations, PostgreSQL/pgvector/Redis integration, and scripted zero-key evaluation passed. Prior run #595 on2b857249f173aff8ab0b68b03a4bfbdb4d3ea4c0had 2,392 backend passed / 11 skipped / 161 warnings. No backend warning-count increase; existing SQLAlchemy, Node/Actions runtime and deprecated frontend dependency warnings remain maintenance debt.QA follow-up — 1 November 2026 (checkout input key ordering)
backend/app/analysis/workflow_security.py: valid GitHub Actions step mappings may placewith.reforwith.repositorybeforeuses: actions/checkout@<sha>. The previous single-pass detector activated only afteruses, missing privileged PR-head/fork checkout inputs on earlier lines.f3494d8records same-step candidate input lines until the checkout action is identified, retaining directwithscope and resetting at step boundaries. Regression tests982ce5eadd five cases: reorderedrefandrepositorypositives; other-action/cross-step,env.ref, and unprivileged-event negatives.982ce5ef745506c80b1a4fefc0134a6912f41c08: backend 2,402 passed / 11 skipped / 161 warnings (five new cases passed); frontend 242 passed / 0 failed, typecheck/lint/build passed; Windows 4 passed; migration, PostgreSQL/pgvector/Redis integration and scripted zero-key evaluation passed. Prior run #597 had 2,397 backend passed / 11 skipped / 161 warnings. No backend warning-count regression; SQLAlchemy, Node/Actions runtime and frontend dependency deprecations remain.QA follow-up — 1 November 2026 (step-leading
withmapping)- with:and place its siblinguses: actions/checkout@<sha>afterward. The previous indentation stack did not recognize the leading list-item mapping, so directwith.refandwith.repositoryPR-head/fork inputs were missed inpull_request_targetcontext.5f4007crecords list-item mapping keys at their actual key column and recognizes step boundaries before pushing mappings. Regression commit2dc2a3badds four cases: two positiveref/repositorydetections, a negativeenv.refcontrol, and cross-step isolation. The rule remains contextual, not evidence of untrusted code execution.2dc2a3b48a1680a5471c2f966063156050b5a7a3: backend 2,406 passed / 11 skipped / 161 warnings (all four added regressions passed); frontend 242 passed / 0 failed with type-check/lint/build; Windows security 4 passed; migrations, PostgreSQL/pgvector/Redis integration, and zero-key scripted evaluation passed. Previous run #599 on982ce5ef745506c80b1a4fefc0134a6912f41c08had 2,402 passed / 11 skipped / 161 warnings. No backend warning-count increase. SQLAlchemy, Node/Actions runtime, and frontend dependency deprecations remain maintenance debt.mainwrite, force-push, merge, deployment, approval waiver, or release-gate bypass.QA follow-up — 1 November 2026 (literal PR refs)
actions/checkoutstep using a literalwith.ref: refs/pull/123/heador/mergewas not recognized; the matcher handled only the${{ github.event.pull_request.number }}expression form. GitHub's June 18 checkout guidance identifies these PR ref shapes as sensitive.85b437frecognizes literal numeric refs while retaining exact input and quote matching. Regression testsb239e4fadd five focused cases (two positive head/merge detections; three negative scope/trigger/suffix controls).b239e4f0aafe5df88d0ea4a839cde00446bb049a: backend 2,411 passed / 11 skipped / 161 warnings, including all five new focused regressions; frontend 242 passed / 0 failed with type-check/lint/build; Windows 4 passed; migration, PostgreSQL/pgvector/Redis integration, and scripted evaluation gates succeeded. Previous run #604 on2dc2a3b48a1680a5471c2f966063156050b5a7a3had 2,406 backend passed / 11 skipped / 161 warnings. No backend warning-count increase; SQLAlchemy, Node/Actions and frontend dependency deprecations remain.QA follow-up — 1 November 2026 (block-scalar step names)
- name: |or- name: >could hide a subsequent siblinguses:declaration. The scanner skipped the block-scalar header before recording the step boundary and used the list-marker indentation instead of the mapping key column, swallowing sibling action inputs.78ef49crecognizes the step boundary before skipping scalar content and uses the actual mapping key column for the scalar body boundary. This preserves detection of mutable action references and contextual privileged PR-head checkout inputs without treating scalar text as executable actions.usesdeclaration.78ef49cf3e4055149c2e2b47e51f972ac31900f0: backend 2,415 passed / 11 skipped / 161 warnings; frontend 242 passed / 0 failed plus type-check/lint/build; Windows path/reparse security 4 passed; migration, PostgreSQL/pgvector/Redis integration, and scripted evaluation checks succeeded. Previous run #608 onb239e4f0aafe5df88d0ea4a839cde00446bb049ahad 2,411 passed / 11 skipped / 161 warnings. No backend warning-count increase; existing SQLAlchemy, Node/Actions runtime and dependency deprecations remain.mainwrite, force-push, merge, deployment, approval waiver, or release-gate bypass.