Repository navigation
Conversation
Add first-denial notices for legacy slash commands and CEL dispatch while preserving shared authorization behavior. Signed-off-by: Barak Korren <bkorren@redhat.com> Assisted-by: Codex (gpt-5.6-sol)
PR Summary by QodoNotify users once when authorization blocks an agent launch
AI Description
Diagram
High-Level Assessment
Files changed (8)
|
|
🤖 Finished Review · ✅ Success · Started 11:27 AM UTC · Completed 11:41 AM UTC Commit: Runtime: pi · Model: sonnet → claude-sonnet-5-5 · Effort: high · Cost: $3.46 |
Site previewPreview: https://e6ba9435-site.fullsend-ai.workers.dev Commit: |
Code Review by Qodo
1.
|
|
<!-- fullsend:risk-assessment --> DetailsLarge changeset modifying protected CI workflow permissions and core dispatch logic across frequently churned files without a feature flag, balanced by complete issue acceptance criteria coverage. Previous run<!-- fullsend:risk-assessment --> DetailsLarge changeset modifying protected CI workflow permissions and core dispatch logic across frequently churned files without a feature flag, balanced by complete issue acceptance criteria coverage. Previous run (2)<!-- fullsend:risk-assessment --> DetailsLarge changeset modifying protected CI workflow permissions and core dispatch logic across frequently churned files without a feature flag, balanced by complete issue acceptance criteria coverage. Previous run (3)<!-- fullsend:risk-assessment --> DetailsProtected CI workflow changes and high historical churn in dispatch files are balanced by solid test coverage, additive revertibility, and exact scope alignment with the linked issue. Previous run (4)<!-- fullsend:risk-assessment --> DetailsProtected CI workflow changes and high historical churn in dispatch files are balanced by moderate diff size, solid test coverage, and exact scope alignment with the linked issue. Previous run (5)Risk Assessment: moderate (2/5) DetailsProtected CI workflow changes and high historical churn in dispatch files are balanced by moderate diff size, solid test coverage, and exact scope alignment with the linked issue. Previous run (6)Risk Assessment: moderate (2/5) DetailsProtected CI workflow modifications and elevated historical churn in dispatch components are balanced by solid test coverage, moderate change size, and exact scope alignment with the linked issue. Previous run (7)Risk Assessment: moderate (2/5) DetailsProtected CI workflow modifications and elevated git churn across dispatch files are balanced by strong test coverage and exact scope alignment with linked issue #7555. Previous run (8)Risk Assessment: moderate (2/5) DetailsModerate diff size with protected CI workflow changes and elevated workflow churn is balanced by solid test coverage, complete acceptance criteria alignment, and established author history. Previous run (9)Risk Assessment: moderate (2/5) DetailsModerate diff size with protected CI workflow changes and elevated workflow churn is balanced by solid test coverage, complete acceptance criteria alignment, and established author history. Previous run (10)Risk Assessment: moderate (2/5) DetailsModerate diff size with protected CI workflow changes and elevated workflow churn is balanced by solid test coverage, complete acceptance criteria alignment, and established author history. Previous run (11)Risk Assessment: moderate (2/5) DetailsModerate risk driven by CI workflow modifications and high git churn across dispatch workflows, balanced by clear issue alignment, solid test coverage, and a focused blast radius. Previous run (12)Risk Assessment: moderate (2/5) DetailsModerate-sized change modifying CI workflow dispatch and core dispatch notification paths without a feature flag, counterbalanced by good test coverage, low author contention across codebase files, and exact alignment with linked issue #7555. Previous run (13)Risk Assessment: moderate (2/5) DetailsModerate-sized change modifying CI workflow dispatch and core dispatch notification paths without a feature flag, counterbalanced by good test coverage, low author contention across codebase files, and exact alignment with linked issue #7555. Previous run (14)Risk Assessment: moderate (2/5) DetailsProtected CI workflow changes and high historical churn in dispatch files are balanced by moderate diff size, solid test coverage, and exact scope alignment with the linked issue. |
ReviewFindingsMedium
Low
Next steps:
Previous run<!-- fullsend:review-findings-v2:eyJ2ZXJzaW9uIjoyLCJhY3Rpb24iOiJyZXF1ZXN0LWNoYW5nZXMiLCJmaW5kaW5ncyI6W3sic2V2ZXJpdHkiOiJtZWRpdW0iLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl8xNTg1NzA0MGJjYzk5NDQ1IiwibGluZSI6NjQ5LCJhY3Rpb25hYmxlIjp0cnVlfSx7InNldmVyaXR5IjoibWVkaXVtIiwiY2F0ZWdvcnkiOiJpbmNvcnJlY3QtZG9jIiwiZmlsZSI6ImRvY3Mvbm9ybWF0aXZlL2F1dGhvcml6YXRpb24vdjEvUkVBRE1FLm1kIiwiaWQiOiJmX2E0MzI4MDk2MDAwMzVmY2MiLCJsaW5lIjo0MjQsImFjdGlvbmFibGUiOnRydWV9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6InNjb3BlLWNyZWVwIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl9kYjQ1NjM2NDQ0NTVjMjhhIiwibGluZSI6NTQzLCJhY3Rpb25hYmxlIjpmYWxzZX0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoidGllci1taXNtYXRjaCIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfZDBkYmJkOTgyODQzYjIzNSIsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJicmVha2luZy1zY2hlbWEiLCJmaWxlIjoiZG9jcy9ub3JtYXRpdmUvbm9ybWFsaXplZC1ldmVudC92MS9ub3JtYWxpemVkLWV2ZW50LnNjaGVtYS5qc29uIiwiaWQiOiJmXzUxZmUzYWU3ZGZkYWYzNmIiLCJsaW5lIjozMDQsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJiYWNrd2FyZC1pbmNvbXBhdGlibGUiLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmXzUzZTBlNzI0ZDAxOTEyYjEiLCJsaW5lIjo1NDMsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoiaW5mbyIsImNhdGVnb3J5IjoicGVybWlzc2lvbi1leHBhbnNpb24iLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmXzZhMWRmMmNhZjE3NmE4MTciLCJsaW5lIjo3ODYsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoiaW5mbyIsImNhdGVnb3J5IjoiY29tcGxleGl0eS1yYXRpbyIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfZDViMzE1MDY1MTFmMmYwMCIsImxpbmUiOjc3MiwiYWN0aW9uYWJsZSI6ZmFsc2V9LHsic2V2ZXJpdHkiOiJtZWRpdW0iLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl9mYzQ2ZmQ2YmY3NWY4MDg5IiwibGluZSI6NDgyLCJhY3Rpb25hYmxlIjp0cnVlfV0sImRpc3Bvc2l0aW9ucyI6W3siaWQiOiJmX2ZjNDZmZDZiZjc1ZjgwODkiLCJzdGF0dXMiOiJyZXNvbHZlZF9ieV9jaGFuZ2UifSx7ImlkIjoiZl8xNTg1NzA0MGJjYzk5NDQ1Iiwic3RhdHVzIjoib3BlbiJ9LHsiaWQiOiJmX2RiNDU2MzY0NDQ1NWMyOGEiLCJzdGF0dXMiOiJyZWNsYXNzaWZpZWQifSx7ImlkIjoiZl82YTFkZjJjYWYxNzZhODE3Iiwic3RhdHVzIjoicmVjbGFzc2lmaWVkIn0seyJpZCI6ImZfZDViMzE1MDY1MTFmMmYwMCIsInN0YXR1cyI6InJlY2xhc3NpZmllZCJ9LHsiaWQiOiJmX2QwZGJiZDk4Mjg0M2IyMzUiLCJzdGF0dXMiOiJvcGVuIn0seyJpZCI6ImZfNTFmZTNhZTdkZmRhZjM2YiIsInN0YXR1cyI6Im9wZW4ifSx7ImlkIjoiZl81M2UwZTcyNGQwMTkxMmIxIiwic3RhdHVzIjoib3BlbiJ9XX0= --> ReviewFindingsMedium
Low
Earlier findings
Next steps:
Previous run (2)<!-- fullsend:review-findings-v2:eyJ2ZXJzaW9uIjoyLCJhY3Rpb24iOiJyZXF1ZXN0LWNoYW5nZXMiLCJmaW5kaW5ncyI6W3sic2V2ZXJpdHkiOiJtZWRpdW0iLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl9mYzQ2ZmQ2YmY3NWY4MDg5IiwibGluZSI6NDgyLCJhY3Rpb25hYmxlIjp0cnVlfSx7InNldmVyaXR5IjoibWVkaXVtIiwiY2F0ZWdvcnkiOiJsb2dpYy1lcnJvciIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfMTU4NTcwNDBiY2M5OTQ0NSIsImxpbmUiOjY5OCwiYWN0aW9uYWJsZSI6dHJ1ZX0seyJzZXZlcml0eSI6Im1lZGl1bSIsImNhdGVnb3J5Ijoic2NvcGUtY3JlZXAiLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmX2RiNDU2MzY0NDQ1NWMyOGEiLCJsaW5lIjo1OTIsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJwZXJtaXNzaW9uLWV4cGFuc2lvbiIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfNmExZGYyY2FmMTc2YTgxNyIsImxpbmUiOjgzNywiYWN0aW9uYWJsZSI6ZmFsc2V9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6ImNvbXBsZXhpdHktcmF0aW8iLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmX2Q1YjMxNTA2NTExZjJmMDAiLCJsaW5lIjo4MjMsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJ0aWVyLW1pc21hdGNoIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl9kMGRiYmQ5ODI4NDNiMjM1IiwiYWN0aW9uYWJsZSI6ZmFsc2V9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6ImJyZWFraW5nLXNjaGVtYSIsImZpbGUiOiJkb2NzL25vcm1hdGl2ZS9ub3JtYWxpemVkLWV2ZW50L3YxL25vcm1hbGl6ZWQtZXZlbnQuc2NoZW1hLmpzb24iLCJpZCI6ImZfNTFmZTNhZTdkZmRhZjM2YiIsImxpbmUiOjMwNCwiYWN0aW9uYWJsZSI6ZmFsc2V9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6ImJhY2t3YXJkLWluY29tcGF0aWJsZSIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfNTNlMGU3MjRkMDE5MTJiMSIsImxpbmUiOjU5MCwiYWN0aW9uYWJsZSI6ZmFsc2V9XX0= --> ReviewFindingsMedium
Low
Next steps:
Previous run (3)<!-- fullsend:review-findings-v2:eyJ2ZXJzaW9uIjoyLCJhY3Rpb24iOiJyZXF1ZXN0LWNoYW5nZXMiLCJmaW5kaW5ncyI6W3sic2V2ZXJpdHkiOiJtZWRpdW0iLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl8yYWYwOTE1MzQ4Zjc1MzI3IiwibGluZSI6Njk4LCJhY3Rpb25hYmxlIjp0cnVlfSx7InNldmVyaXR5IjoibWVkaXVtIiwiY2F0ZWdvcnkiOiJsb2dpYy1lcnJvciIsImZpbGUiOiJpbnRlcm5hbC9oYXJuZXNzZGlzcGF0Y2gvY29yZS5nbyIsImlkIjoiZl8xMzQxYzdkYWU4OGE3ZjYzIiwibGluZSI6NjEsImFjdGlvbmFibGUiOnRydWV9LHsic2V2ZXJpdHkiOiJtZWRpdW0iLCJjYXRlZ29yeSI6ImJyZWFraW5nLWNvbmZpZyIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfYzZiNTZmMmE1ZjdjMDA4MiIsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJtaXNsZWFkaW5nLWxhYmVsIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl9kMjJlZjYzNjRjMDhlYjRiIiwiYWN0aW9uYWJsZSI6ZmFsc2V9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6Im5hbWluZy1jb252ZW50aW9uIiwiZmlsZSI6ImludGVybmFsL2NsaS9kaXNwYXRjaF90ZXN0LmdvIiwiaWQiOiJmXzU0ZWYyYTkwODI0MmIxZDQiLCJsaW5lIjoyMCwiYWN0aW9uYWJsZSI6dHJ1ZX0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoiYnJlYWtpbmctc2NoZW1hIiwiZmlsZSI6ImRvY3Mvbm9ybWF0aXZlL25vcm1hbGl6ZWQtZXZlbnQvdjEvbm9ybWFsaXplZC1ldmVudC5zY2hlbWEuanNvbiIsImlkIjoiZl9iZGY3ZGI0ZWQ5OGM0ZjMxIiwibGluZSI6MzA0LCJhY3Rpb25hYmxlIjpmYWxzZX1dfQ== --> ReviewFindingsMedium
Low
Next steps:
Previous run (4)<!-- fullsend:review-findings-v2:eyJ2ZXJzaW9uIjoyLCJhY3Rpb24iOiJyZXF1ZXN0LWNoYW5nZXMiLCJmaW5kaW5ncyI6W3sic2V2ZXJpdHkiOiJtZWRpdW0iLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl8xMzhkODVmMTZjZjlmMDI0IiwibGluZSI6NzcxLCJhY3Rpb25hYmxlIjp0cnVlfSx7InNldmVyaXR5IjoibWVkaXVtIiwiY2F0ZWdvcnkiOiJ0ZXN0LWluYWRlcXVhdGUiLCJmaWxlIjoiaW50ZXJuYWwvc2NhZmZvbGQvd29ya2Zsb3dfY2FsbF9hbGlnbm1lbnRfdGVzdC5nbyIsImlkIjoiZl9lZDFhYmQ5NDQxZWY1ZDE5IiwibGluZSI6MTUxLCJhY3Rpb25hYmxlIjp0cnVlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJsb2dpYy1lcnJvciIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfZDlkMWQzY2ZmY2I1YTdhNiIsImxpbmUiOjY5OCwiYWN0aW9uYWJsZSI6ZmFsc2V9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6ImluY29tcGxldGUtZG9jIiwiZmlsZSI6ImRvY3MvZ3VpZGVzL3VzZXIvY3VzdG9taXppbmctYWdlbnRzLm1kIiwiaWQiOiJmX2ExYWRiNWE0NWViMTgxZTAiLCJsaW5lIjo1ODksImFjdGlvbmFibGUiOnRydWV9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6InN0YWxlLWRvYyIsImZpbGUiOiJkb2NzL25vcm1hdGl2ZS9hdXRob3JpemF0aW9uL3YxL1JFQURNRS5tZCIsImlkIjoiZl8yMDA2OTI3OTdjMjhlMmE0IiwibGluZSI6NDA5LCJhY3Rpb25hYmxlIjp0cnVlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJmYWlsLW9wZW4iLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmX2Y5NDBiMThlYjRjODg1OGMiLCJsaW5lIjo2ODQsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJmYWlsLW9wZW4iLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmXzUxMDNiODBlMmVkODc5OTQiLCJsaW5lIjo2NTYsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoibWVkaXVtIiwiY2F0ZWdvcnkiOiJtaXNsZWFkaW5nLWxhYmVsIiwiZmlsZSI6bnVsbCwiaWQiOiJmXzZlZWRiYmRlODE5ZDgzN2MiLCJhY3Rpb25hYmxlIjpmYWxzZX0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5Ijoic2NvcGUtY3JlZXAiLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmXzk1YTY0ODlhOWE1YjE1NTkiLCJsaW5lIjo1OTgsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJkZXNpZ24tZGlyZWN0aW9uIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl9hYjFiOTRiOTMwNmFhZmVlIiwibGluZSI6ODE1LCJhY3Rpb25hYmxlIjpmYWxzZX0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoiY29kZS1vcmdhbml6YXRpb24iLCJmaWxlIjoiaW50ZXJuYWwvY2xpL2Rpc3BhdGNoLmdvIiwiaWQiOiJmXzA1MTMwMTBlYjM0YmVlODEiLCJsaW5lIjoxNDQsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJiYWNrd2FyZC1pbmNvbXBhdGlibGUiLCJmaWxlIjoiZG9jcy9ub3JtYXRpdmUvbm9ybWFsaXplZC1ldmVudC92MS9ub3JtYWxpemVkLWV2ZW50LnNjaGVtYS5qc29uIiwiaWQiOiJmX2FkZGM0OWUyZjJmMTYyYmMiLCJsaW5lIjozMDQsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoiaW5mbyIsImNhdGVnb3J5IjoiYmFja3dhcmQtaW5jb21wYXRpYmxlIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl8zODc3M2JiMjI0MTA1MGVjIiwibGluZSI6NTQ5LCJhY3Rpb25hYmxlIjpmYWxzZX0seyJzZXZlcml0eSI6Im1lZGl1bSIsImNhdGVnb3J5IjoiYXJjaGl0ZWN0dXJhbC1jb25mbGljdCIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfNTMxMDhjZmMwMWEzZmVjMSIsImxpbmUiOjc0Mn0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoibG9naWMtZXJyb3IiLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmXzkwMTMwZDc2ZmE0NDU1ZDkiLCJsaW5lIjo0MzV9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6ImVkZ2UtY2FzZSIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfMjAzZjQ3Yjc5M2JmYmIxNCIsImxpbmUiOjcxNn0seyJzZXZlcml0eSI6ImNyaXRpY2FsIiwiY2F0ZWdvcnkiOiJmYWlsLW9wZW4iLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmXzVmYTVhN2E2MWMzNWNmNzkiLCJsaW5lIjo1MzF9LHsic2V2ZXJpdHkiOiJoaWdoIiwiY2F0ZWdvcnkiOiJsb2dpYy1lcnJvciIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfZDc4YTliZjRhYWZkMmJlOSIsImxpbmUiOjUzMX0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoibG9naWMtZXJyb3IiLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmXzc0MTg3NzBlZDg2ZDNkODYiLCJsaW5lIjo2NzZ9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6InBlcm1pc3Npb24tZXhwYW5zaW9uIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl83MmM0NDJlZmMzZTk2ZTdmIiwibGluZSI6NzU5fSx7InNldmVyaXR5IjoibWVkaXVtIiwiY2F0ZWdvcnkiOiJsb2dpYy1lcnJvciIsImZpbGUiOiJpbnRlcm5hbC9jbGkvZGlzcGF0Y2guZ28iLCJpZCI6ImZfNGJmYzRhZTVjYTRiNzM2MSIsImxpbmUiOjE3NH0seyJzZXZlcml0eSI6Im1lZGl1bSIsImNhdGVnb3J5IjoibG9naWMtZXJyb3IiLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmXzRmNjgyNjc5MTYxZDQwMzMiLCJsaW5lIjo3Nzd9XSwiZGlzcG9zaXRpb25zIjpbeyJpZCI6ImZfMTM4ZDg1ZjE2Y2Y5ZjAyNCIsInN0YXR1cyI6Im9wZW4ifSx7ImlkIjoiZl82ZWVkYmJkZTgxOWQ4MzdjIiwic3RhdHVzIjoib3BlbiJ9LHsiaWQiOiJmX2Q5ZDFkM2NmZmNiNWE3YTYiLCJzdGF0dXMiOiJvcGVuIn0seyJpZCI6ImZfZjk0MGIxOGViNGM4ODU4YyIsInN0YXR1cyI6Im9wZW4ifSx7ImlkIjoiZl85NWE2NDg5YTlhNWIxNTU5Iiwic3RhdHVzIjoib3BlbiJ9LHsiaWQiOiJmX2FiMWI5NGI5MzA2YWFmZWUiLCJzdGF0dXMiOiJvcGVuIn0seyJpZCI6ImZfMDUxMzAxMGViMzRiZWU4MSIsInN0YXR1cyI6Im9wZW4ifSx7ImlkIjoiZl9hMWFkYjVhNDVlYjE4MWUwIiwic3RhdHVzIjoib3BlbiJ9LHsiaWQiOiJmXzIwMDY5Mjc5N2MyOGUyYTQiLCJzdGF0dXMiOiJvcGVuIn0seyJpZCI6ImZfYWRkYzQ5ZTJmMmYxNjJiYyIsInN0YXR1cyI6Im9wZW4ifSx7ImlkIjoiZl8zODc3M2JiMjI0MTA1MGVjIiwic3RhdHVzIjoicmVjbGFzc2lmaWVkIn0seyJpZCI6ImZfNTMxMDhjZmMwMWEzZmVjMSIsInN0YXR1cyI6InJlc29sdmVkX2J5X2NoYW5nZSJ9LHsiaWQiOiJmXzkwMTMwZDc2ZmE0NDU1ZDkiLCJzdGF0dXMiOiJyZXNvbHZlZF9ieV9jaGFuZ2UifSx7ImlkIjoiZl8yMDNmNDdiNzkzYmZiYjE0Iiwic3RhdHVzIjoicmVzb2x2ZWRfYnlfY2hhbmdlIn0seyJpZCI6ImZfNWZhNWE3YTYxYzM1Y2Y3OSIsInN0YXR1cyI6InJlc29sdmVkX2J5X2NoYW5nZSJ9LHsiaWQiOiJmX2Q3OGE5YmY0YWFmZDJiZTkiLCJzdGF0dXMiOiJyZXNvbHZlZF9ieV9jaGFuZ2UifSx7ImlkIjoiZl83NDE4NzcwZWQ4NmQzZDg2Iiwic3RhdHVzIjoicmVzb2x2ZWRfYnlfY2hhbmdlIn0seyJpZCI6ImZfNzJjNDQyZWZjM2U5NmU3ZiIsInN0YXR1cyI6InJlc29sdmVkX2J5X2NoYW5nZSJ9LHsiaWQiOiJmXzRiZmM0YWU1Y2E0YjczNjEiLCJzdGF0dXMiOiJyZXNvbHZlZF9ieV9jaGFuZ2UifSx7ImlkIjoiZl80ZjY4MjY3OTE2MWQ0MDMzIiwic3RhdHVzIjoicmVzb2x2ZWRfYnlfY2hhbmdlIn1dfQ== --> ReviewFindingsMedium
Low
Earlier findings
Next steps:
Previous run (5)<!-- fullsend:review-findings-v2:eyJ2ZXJzaW9uIjoyLCJhY3Rpb24iOiJyZXF1ZXN0LWNoYW5nZXMiLCJmaW5kaW5ncyI6W3sic2V2ZXJpdHkiOiJtZWRpdW0iLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl8xMzhkODVmMTZjZjlmMDI0IiwibGluZSI6NzYxLCJhY3Rpb25hYmxlIjp0cnVlfSx7InNldmVyaXR5IjoibWVkaXVtIiwiY2F0ZWdvcnkiOiJtaXNsZWFkaW5nLWxhYmVsIiwiZmlsZSI6bnVsbCwiaWQiOiJmXzZlZWRiYmRlODE5ZDgzN2MiLCJhY3Rpb25hYmxlIjpmYWxzZX0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoibG9naWMtZXJyb3IiLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmX2Q5ZDFkM2NmZmNiNWE3YTYiLCJsaW5lIjo2ODcsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJmYWlsLW9wZW4iLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmX2Y5NDBiMThlYjRjODg1OGMiLCJsaW5lIjo2NzMsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJzY29wZS1jcmVlcCIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfOTVhNjQ4OWE5YTViMTU1OSIsImxpbmUiOjU0NCwiYWN0aW9uYWJsZSI6ZmFsc2V9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6ImRlc2lnbi1kaXJlY3Rpb24iLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmX2FiMWI5NGI5MzA2YWFmZWUiLCJsaW5lIjo3NzQsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJjb2RlLW9yZ2FuaXphdGlvbiIsImZpbGUiOiJpbnRlcm5hbC9jbGkvZGlzcGF0Y2guZ28iLCJpZCI6ImZfMDUxMzAxMGViMzRiZWU4MSIsImxpbmUiOjE0NCwiYWN0aW9uYWJsZSI6ZmFsc2V9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6ImluY29tcGxldGUtZG9jIiwiZmlsZSI6ImRvY3MvZ3VpZGVzL3VzZXIvY3VzdG9taXppbmctYWdlbnRzLm1kIiwiaWQiOiJmX2ExYWRiNWE0NWViMTgxZTAiLCJsaW5lIjo1ODksImFjdGlvbmFibGUiOnRydWV9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6InN0YWxlLWRvYyIsImZpbGUiOiJkb2NzL25vcm1hdGl2ZS9hdXRob3JpemF0aW9uL3YxL1JFQURNRS5tZCIsImlkIjoiZl8yMDA2OTI3OTdjMjhlMmE0IiwibGluZSI6NDA5LCJhY3Rpb25hYmxlIjp0cnVlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJiYWNrd2FyZC1pbmNvbXBhdGlibGUiLCJmaWxlIjoiZG9jcy9ub3JtYXRpdmUvbm9ybWFsaXplZC1ldmVudC92MS9ub3JtYWxpemVkLWV2ZW50LnNjaGVtYS5qc29uIiwiaWQiOiJmX2FkZGM0OWUyZjJmMTYyYmMiLCJsaW5lIjozMDQsImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJiYWNrd2FyZC1pbmNvbXBhdGlibGUiLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmXzM4NzczYmIyMjQxMDUwZWMiLCJsaW5lIjo1NDksImFjdGlvbmFibGUiOmZhbHNlfSx7InNldmVyaXR5IjoibWVkaXVtIiwiY2F0ZWdvcnkiOiJhcmNoaXRlY3R1cmFsLWNvbmZsaWN0IiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl81MzEwOGNmYzAxYTNmZWMxIiwibGluZSI6NzQyfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJsb2dpYy1lcnJvciIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfOTAxMzBkNzZmYTQ0NTVkOSIsImxpbmUiOjQzNX0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoiZWRnZS1jYXNlIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl8yMDNmNDdiNzkzYmZiYjE0IiwibGluZSI6NzE2fSx7InNldmVyaXR5IjoiY3JpdGljYWwiLCJjYXRlZ29yeSI6ImZhaWwtb3BlbiIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfNWZhNWE3YTYxYzM1Y2Y3OSIsImxpbmUiOjUzMX0seyJzZXZlcml0eSI6ImhpZ2giLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl9kNzhhOWJmNGFhZmQyYmU5IiwibGluZSI6NTMxfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJsb2dpYy1lcnJvciIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfNzQxODc3MGVkODZkM2Q4NiIsImxpbmUiOjY3Nn0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoicGVybWlzc2lvbi1leHBhbnNpb24iLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmXzcyYzQ0MmVmYzNlOTZlN2YiLCJsaW5lIjo3NTl9LHsic2V2ZXJpdHkiOiJtZWRpdW0iLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6ImludGVybmFsL2NsaS9kaXNwYXRjaC5nbyIsImlkIjoiZl80YmZjNGFlNWNhNGI3MzYxIiwibGluZSI6MTc0fSx7InNldmVyaXR5IjoibWVkaXVtIiwiY2F0ZWdvcnkiOiJsb2dpYy1lcnJvciIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfNGY2ODI2NzkxNjFkNDAzMyIsImxpbmUiOjc3N31dLCJkaXNwb3NpdGlvbnMiOlt7ImlkIjoiZl9kOWQxZDNjZmZjYjVhN2E2Iiwic3RhdHVzIjoib3BlbiJ9LHsiaWQiOiJmXzZlZWRiYmRlODE5ZDgzN2MiLCJzdGF0dXMiOiJvcGVuIn0seyJpZCI6ImZfOTVhNjQ4OWE5YTViMTU1OSIsInN0YXR1cyI6Im9wZW4ifSx7ImlkIjoiZl9hYjFiOTRiOTMwNmFhZmVlIiwic3RhdHVzIjoib3BlbiJ9LHsiaWQiOiJmX2ExYWRiNWE0NWViMTgxZTAiLCJzdGF0dXMiOiJvcGVuIn0seyJpZCI6ImZfMjAwNjkyNzk3YzI4ZTJhNCIsInN0YXR1cyI6Im9wZW4ifSx7ImlkIjoiZl9hZGRjNDllMmYyZjE2MmJjIiwic3RhdHVzIjoib3BlbiJ9LHsiaWQiOiJmXzM4NzczYmIyMjQxMDUwZWMiLCJzdGF0dXMiOiJvcGVuIn0seyJpZCI6ImZfZjk0MGIxOGViNGM4ODU4YyIsInN0YXR1cyI6Im9wZW4ifSx7ImlkIjoiZl81MzEwOGNmYzAxYTNmZWMxIiwic3RhdHVzIjoicmVzb2x2ZWRfYnlfY2hhbmdlIn0seyJpZCI6ImZfOTAxMzBkNzZmYTQ0NTVkOSIsInN0YXR1cyI6InJlc29sdmVkX2J5X2NoYW5nZSJ9LHsiaWQiOiJmXzIwM2Y0N2I3OTNiZmJiMTQiLCJzdGF0dXMiOiJyZXNvbHZlZF9ieV9jaGFuZ2UifSx7ImlkIjoiZl81ZmE1YTdhNjFjMzVjZjc5Iiwic3RhdHVzIjoicmVzb2x2ZWRfYnlfY2hhbmdlIn0seyJpZCI6ImZfZDc4YTliZjRhYWZkMmJlOSIsInN0YXR1cyI6InJlc29sdmVkX2J5X2NoYW5nZSJ9LHsiaWQiOiJmXzc0MTg3NzBlZDg2ZDNkODYiLCJzdGF0dXMiOiJyZXNvbHZlZF9ieV9jaGFuZ2UifSx7ImlkIjoiZl83MmM0NDJlZmMzZTk2ZTdmIiwic3RhdHVzIjoicmVzb2x2ZWRfYnlfY2hhbmdlIn0seyJpZCI6ImZfNGJmYzRhZTVjYTRiNzM2MSIsInN0YXR1cyI6InJlc29sdmVkX2J5X2NoYW5nZSJ9LHsiaWQiOiJmXzRmNjgyNjc5MTYxZDQwMzMiLCJzdGF0dXMiOiJyZXNvbHZlZF9ieV9jaGFuZ2UifV19 --> ReviewFindingsMedium
Low
Previous run (6)<!-- fullsend:review-findings-v2:eyJ2ZXJzaW9uIjoyLCJmaW5kaW5ncyI6W3sic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl9kOWQxZDNjZmZjYjVhN2E2IiwibGluZSI6NjA0fSx7InNldmVyaXR5IjoibWVkaXVtIiwiY2F0ZWdvcnkiOiJtaXNsZWFkaW5nLWxhYmVsIiwiZmlsZSI6bnVsbCwiaWQiOiJmXzZlZWRiYmRlODE5ZDgzN2MifSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJzY29wZS1jcmVlcCIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfOTVhNjQ4OWE5YTViMTU1OSIsImxpbmUiOjU0NH0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoiZGVzaWduLWRpcmVjdGlvbiIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfYWIxYjk0YjkzMDZhYWZlZSIsImxpbmUiOjc3NH0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoiaW5jb21wbGV0ZS1kb2MiLCJmaWxlIjoiZG9jcy9ndWlkZXMvdXNlci9jdXN0b21pemluZy1hZ2VudHMubWQiLCJpZCI6ImZfYTFhZGI1YTQ1ZWIxODFlMCIsImxpbmUiOjU4OX0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5Ijoic3RhbGUtZG9jIiwiZmlsZSI6ImRvY3Mvbm9ybWF0aXZlL2F1dGhvcml6YXRpb24vdjEvUkVBRE1FLm1kIiwiaWQiOiJmXzIwMDY5Mjc5N2MyOGUyYTQiLCJsaW5lIjozNjd9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6ImJhY2t3YXJkLWluY29tcGF0aWJsZSIsImZpbGUiOiJkb2NzL25vcm1hdGl2ZS9ub3JtYWxpemVkLWV2ZW50L3YxL25vcm1hbGl6ZWQtZXZlbnQuc2NoZW1hLmpzb24iLCJpZCI6ImZfYWRkYzQ5ZTJmMmYxNjJiYyIsImxpbmUiOjMwNH0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoiYmFja3dhcmQtaW5jb21wYXRpYmxlIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl8zODc3M2JiMjI0MTA1MGVjIiwibGluZSI6NTQ5fSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJmYWlsLW9wZW4iLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmX2Y5NDBiMThlYjRjODg1OGMiLCJsaW5lIjo2MTB9LHsic2V2ZXJpdHkiOiJtZWRpdW0iLCJjYXRlZ29yeSI6ImFyY2hpdGVjdHVyYWwtY29uZmxpY3QiLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmXzUzMTA4Y2ZjMDFhM2ZlYzEiLCJsaW5lIjo3NDJ9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl85MDEzMGQ3NmZhNDQ1NWQ5IiwibGluZSI6NDM1fSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJlZGdlLWNhc2UiLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmXzIwM2Y0N2I3OTNiZmJiMTQiLCJsaW5lIjo3MTZ9LHsic2V2ZXJpdHkiOiJjcml0aWNhbCIsImNhdGVnb3J5IjoiZmFpbC1vcGVuIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl81ZmE1YTdhNjFjMzVjZjc5IiwibGluZSI6NTMxfSx7InNldmVyaXR5IjoiaGlnaCIsImNhdGVnb3J5IjoibG9naWMtZXJyb3IiLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmX2Q3OGE5YmY0YWFmZDJiZTkiLCJsaW5lIjo1MzF9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl83NDE4NzcwZWQ4NmQzZDg2IiwibGluZSI6Njc2fSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJwZXJtaXNzaW9uLWV4cGFuc2lvbiIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfNzJjNDQyZWZjM2U5NmU3ZiIsImxpbmUiOjc1OX0seyJzZXZlcml0eSI6Im1lZGl1bSIsImNhdGVnb3J5IjoibG9naWMtZXJyb3IiLCJmaWxlIjoiaW50ZXJuYWwvY2xpL2Rpc3BhdGNoLmdvIiwiaWQiOiJmXzRiZmM0YWU1Y2E0YjczNjEiLCJsaW5lIjoxNzR9LHsic2V2ZXJpdHkiOiJtZWRpdW0iLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl80ZjY4MjY3OTE2MWQ0MDMzIiwibGluZSI6Nzc3fV0sImRpc3Bvc2l0aW9ucyI6W3siaWQiOiJmXzRmNjgyNjc5MTYxZDQwMzMiLCJzdGF0dXMiOiJyZXNvbHZlZF9ieV9jaGFuZ2UifSx7ImlkIjoiZl82ZWVkYmJkZTgxOWQ4MzdjIiwic3RhdHVzIjoib3BlbiJ9LHsiaWQiOiJmX2Q5ZDFkM2NmZmNiNWE3YTYiLCJzdGF0dXMiOiJvcGVuIn0seyJpZCI6ImZfOTVhNjQ4OWE5YTViMTU1OSIsInN0YXR1cyI6Im9wZW4ifSx7ImlkIjoiZl9hYjFiOTRiOTMwNmFhZmVlIiwic3RhdHVzIjoib3BlbiJ9LHsiaWQiOiJmX2FkZGM0OWUyZjJmMTYyYmMiLCJzdGF0dXMiOiJvcGVuIn0seyJpZCI6ImZfMzg3NzNiYjIyNDEwNTBlYyIsInN0YXR1cyI6Im9wZW4ifSx7ImlkIjoiZl9hMWFkYjVhNDVlYjE4MWUwIiwic3RhdHVzIjoib3BlbiJ9LHsiaWQiOiJmXzUzMTA4Y2ZjMDFhM2ZlYzEiLCJzdGF0dXMiOiJyZXNvbHZlZF9ieV9jaGFuZ2UifSx7ImlkIjoiZl85MDEzMGQ3NmZhNDQ1NWQ5Iiwic3RhdHVzIjoicmVzb2x2ZWRfYnlfY2hhbmdlIn0seyJpZCI6ImZfMjAzZjQ3Yjc5M2JmYmIxNCIsInN0YXR1cyI6InJlc29sdmVkX2J5X2NoYW5nZSJ9LHsiaWQiOiJmXzVmYTVhN2E2MWMzNWNmNzkiLCJzdGF0dXMiOiJyZXNvbHZlZF9ieV9jaGFuZ2UifSx7ImlkIjoiZl9kNzhhOWJmNGFhZmQyYmU5Iiwic3RhdHVzIjoicmVzb2x2ZWRfYnlfY2hhbmdlIn0seyJpZCI6ImZfNzQxODc3MGVkODZkM2Q4NiIsInN0YXR1cyI6InJlc29sdmVkX2J5X2NoYW5nZSJ9LHsiaWQiOiJmXzcyYzQ0MmVmYzNlOTZlN2YiLCJzdGF0dXMiOiJyZXNvbHZlZF9ieV9jaGFuZ2UifSx7ImlkIjoiZl80YmZjNGFlNWNhNGI3MzYxIiwic3RhdHVzIjoicmVzb2x2ZWRfYnlfY2hhbmdlIn1dfQ== --> ReviewFindingsMedium
Low
Earlier findings
Next steps:
Previous run (7)<!-- fullsend:review-findings-v2:eyJ2ZXJzaW9uIjoyLCJmaW5kaW5ncyI6W3sic2V2ZXJpdHkiOiJtZWRpdW0iLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl80ZjY4MjY3OTE2MWQ0MDMzIiwibGluZSI6Nzc3fSx7InNldmVyaXR5IjoibWVkaXVtIiwiY2F0ZWdvcnkiOiJtaXNsZWFkaW5nLWxhYmVsIiwiZmlsZSI6bnVsbCwiaWQiOiJmXzZlZWRiYmRlODE5ZDgzN2MifSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJsb2dpYy1lcnJvciIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfZDlkMWQzY2ZmY2I1YTdhNiIsImxpbmUiOjY1MX0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5Ijoic2NvcGUtY3JlZXAiLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmXzk1YTY0ODlhOWE1YjE1NTkiLCJsaW5lIjo1NDR9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6ImRlc2lnbi1kaXJlY3Rpb24iLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmX2FiMWI5NGI5MzA2YWFmZWUiLCJsaW5lIjo3NzR9LHsic2V2ZXJpdHkiOiJsb3ciLCJjYXRlZ29yeSI6ImJhY2t3YXJkLWluY29tcGF0aWJsZSIsImZpbGUiOiJkb2NzL25vcm1hdGl2ZS9ub3JtYWxpemVkLWV2ZW50L3YxL25vcm1hbGl6ZWQtZXZlbnQuc2NoZW1hLmpzb24iLCJpZCI6ImZfYWRkYzQ5ZTJmMmYxNjJiYyIsImxpbmUiOjMwNH0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoiYmFja3dhcmQtaW5jb21wYXRpYmxlIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl8zODc3M2JiMjI0MTA1MGVjIiwibGluZSI6NTQ5fSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJpbmNvbXBsZXRlLWRvYyIsImZpbGUiOiJkb2NzL2d1aWRlcy91c2VyL2N1c3RvbWl6aW5nLWFnZW50cy5tZCIsImlkIjoiZl9hMWFkYjVhNDVlYjE4MWUwIiwibGluZSI6NTg5fSx7InNldmVyaXR5IjoibWVkaXVtIiwiY2F0ZWdvcnkiOiJhcmNoaXRlY3R1cmFsLWNvbmZsaWN0IiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl81MzEwOGNmYzAxYTNmZWMxIiwibGluZSI6NzQyfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJsb2dpYy1lcnJvciIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfOTAxMzBkNzZmYTQ0NTVkOSIsImxpbmUiOjQzNX0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoiZWRnZS1jYXNlIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl8yMDNmNDdiNzkzYmZiYjE0IiwibGluZSI6NzE2fSx7InNldmVyaXR5IjoiY3JpdGljYWwiLCJjYXRlZ29yeSI6ImZhaWwtb3BlbiIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfNWZhNWE3YTYxYzM1Y2Y3OSIsImxpbmUiOjUzMX0seyJzZXZlcml0eSI6ImhpZ2giLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6Ii5naXRodWIvd29ya2Zsb3dzL3JldXNhYmxlLWRpc3BhdGNoLnltbCIsImlkIjoiZl9kNzhhOWJmNGFhZmQyYmU5IiwibGluZSI6NTMxfSx7InNldmVyaXR5IjoibG93IiwiY2F0ZWdvcnkiOiJsb2dpYy1lcnJvciIsImZpbGUiOiIuZ2l0aHViL3dvcmtmbG93cy9yZXVzYWJsZS1kaXNwYXRjaC55bWwiLCJpZCI6ImZfNzQxODc3MGVkODZkM2Q4NiIsImxpbmUiOjY3Nn0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoicGVybWlzc2lvbi1leHBhbnNpb24iLCJmaWxlIjoiLmdpdGh1Yi93b3JrZmxvd3MvcmV1c2FibGUtZGlzcGF0Y2gueW1sIiwiaWQiOiJmXzcyYzQ0MmVmYzNlOTZlN2YiLCJsaW5lIjo3NTl9LHsic2V2ZXJpdHkiOiJtZWRpdW0iLCJjYXRlZ29yeSI6ImxvZ2ljLWVycm9yIiwiZmlsZSI6ImludGVybmFsL2NsaS9kaXNwYXRjaC5nbyIsImlkIjoiZl80YmZjNGFlNWNhNGI3MzYxIiwibGluZSI6MTc0fV0sImRpc3Bvc2l0aW9ucyI6W3siaWQiOiJmXzRiZmM0YWU1Y2E0YjczNjEiLCJzdGF0dXMiOiJyZXNvbHZlZF9ieV9jaGFuZ2UifSx7ImlkIjoiZl82ZWVkYmJkZTgxOWQ4MzdjIiwic3RhdHVzIjoib3BlbiJ9LHsiaWQiOiJmX2FiMWI5NGI5MzA2YWFmZWUiLCJzdGF0dXMiOiJvcGVuIn0seyJpZCI6ImZfYWRkYzQ5ZTJmMmYxNjJiYyIsInN0YXR1cyI6Im9wZW4ifSx7ImlkIjoiZl8zODc3M2JiMjI0MTA1MGVjIiwic3RhdHVzIjoib3BlbiJ9LHsiaWQiOiJmX2ExYWRiNWE0NWViMTgxZTAiLCJzdGF0dXMiOiJvcGVuIn0seyJpZCI6ImZfNTMxMDhjZmMwMWEzZmVjMSIsInN0YXR1cyI6InJlc29sdmVkX2J5X2NoYW5nZSJ9LHsiaWQiOiJmXzkwMTMwZDc2ZmE0NDU1ZDkiLCJzdGF0dXMiOiJyZXNvbHZlZF9ieV9jaGFuZ2UifSx7ImlkIjoiZl8yMDNmNDdiNzkzYmZiYjE0Iiwic3RhdHVzIjoicmVzb2x2ZWRfYnlfY2hhbmdlIn0seyJpZCI6ImZfNWZhNWE3YTYxYzM1Y2Y3OSIsInN0YXR1cyI6InJlc29sdmVkX2J5X2NoYW5nZSJ9LHsiaWQiOiJmX2Q3OGE5YmY0YWFmZDJiZTkiLCJzdGF0dXMiOiJyZXNvbHZlZF9ieV9jaGFuZ2UifSx7ImlkIjoiZl83NDE4NzcwZWQ4NmQzZDg2Iiwic3RhdHVzIjoicmVzb2x2ZWRfYnlfY2hhbmdlIn0seyJpZCI6ImZfNzJjNDQyZWZjM2U5NmU3ZiIsInN0YXR1cyI6InJlc29sdmVkX2J5X2NoYW5nZSJ9XX0= --> ReviewFindingsMedium
Low
Earlier findings
Labels: PR changes the reusable CI dispatch workflow and Go dispatch authorization code Next steps:
|
Notify only for confirmed, applicable launch denials and centralize comment creation in the workflow. Signed-off-by: Barak Korren <bkorren@redhat.com> Assisted-by: Codex (gpt-5.6-sol)
|
🤖 Review · Commit: |
|
🤖 Review · ❌ Terminated · Started 12:24 PM UTC · Ended 12:37 PM UTC Commit: |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
|
🤖 Finished Review · ✅ Success · Started 12:24 PM UTC · Completed 12:37 PM UTC Commit: Runtime: pi · Model: sonnet → claude-sonnet-5-5 · Effort: high · Cost: $3.65 |
Group related GITHUB_OUTPUT writes in the authorization route. Signed-off-by: Barak Korren <bkorren@redhat.com> Assisted-by: Codex (gpt-5.6-sol)
d502281 to
fd9eefd
Compare
Resolve reusable-dispatch workflow conflicts while preserving authorization notices and current-stage gating. Signed-off-by: Barak Korren <bkorren@redhat.com> Assisted-by: Codex (gpt-5.6-sol)
Evaluate registered harness triggers while the kill switch is active so unmatched slash commands do not receive agent-pause notices. Add coverage for matched and unmatched commands, normalize dispatch test names, and verify the unauthorized behaviour path posts its issue comment. Signed-off-by: Barak Korren <bkorren@redhat.com> Assisted-by: Codex (gpt-5.6-sol)
|
🤖 Finished Review · ✅ Success · Started 11:43 AM UTC · Completed 12:21 PM UTC Commit: Runtime: pi · Model: sonnet → claude-sonnet-5-5 · Effort: high · Cost: $3.25 |
The existing-PR gate was removed from main in fullsend-ai#8133 but reintroduced by the workflow changes for fullsend-ai#7555. Drop the gate and its authorization metadata/test plumbing so code dispatch is not incorrectly suppressed by unrelated open PRs. Signed-off-by: Barak Korren <bkorren@redhat.com> Assisted-by: Codex (gpt-5.6-sol)
Signed-off-by: Barak Korren <bkorren@redhat.com> Assisted-by: Codex (gpt-5.6-sol)
|
🤖 Finished Review · ✅ Success · Started 8:30 PM UTC · Completed 8:43 PM UTC Commit: Runtime: pi · Model: sonnet → claude-sonnet-5-5 · Effort: high · Cost: $3.10 |
…atches Require the pre-CEL authorization gate and a matching harness trigger before emitting denial metadata. Keep unauthorized harnesses out of execution refs while using a non-dispatching probe to distinguish denied launches from unrelated events. Signed-off-by: Barak Korren <bkorren@redhat.com> Assisted-by: Codex (gpt-5.6-sol)
|
🤖 Finished Review · ✅ Success · Started 12:47 AM UTC · Completed 1:04 AM UTC Commit: Runtime: pi · Model: sonnet → claude-sonnet-5-5 · Effort: high · Cost: $4.02 |
There was a problem hiding this comment.
Note: The following review comments could not be posted on the diff (GitHub returned 422) and are included here instead:
.github/workflows/reusable-dispatch.yml(file-level): Line 649 ·
[medium] logic-error
The "Resolve PR head for issue_comment events" step still runs after the kill switch skips dispatch. Its if: checks steps.route.outputs.stage != '' plus the role-check/agent-check skipped outputs, but not steps.kill-switch.outputs.skipped. Those two checks are themselves gated on the kill switch, so their outputs are empty when it fires and do not stop this step. The route step's own stage output also stays non-empty; only the job-level stage output (line 122) applies the kill-switch guard. As a result, an authorized /fs-fix on a fork PR fails the route job at the fork guard (exit 1) while dispatch is paused, and a PR API failure for fix/review stages fails it the same way. This contradicts the new successful-skip behavior.
Suggested fix: Add steps.kill-switch.outputs.skipped != 'true' to this step's if: and to any other post-routing execution-preparation steps that key on steps.route.outputs.stage. Add a test showing a paused /fs-fix request on a fork PR skips PR resolution and leaves routing successful.
| if err != nil { | ||
| return Result{}, err | ||
| } | ||
| authorizationDenied = len(deniedMatches) > 0 |
There was a problem hiding this comment.
[medium] edge-case
Per-harness denial metadata ignores AuthorizationAvailable(). When the live collaborator-permission lookup fails (role stays none, authorizationUnavailable is set) but an OWNERS file upgrades the effective role to triage, IsEventAuthorized(&authCheck) passes and the !eventAuthorized && !AuthorizationAvailable() short-circuit is skipped. A matching harness with a higher role threshold (for example a coder harness behind a custom slash command) then sets AuthorizationDenied=true, so the actor gets a "not authorized" comment even though their real permissions were never resolved and could include write access. Execution stays fail-closed; the defect is a false denial notice. The existing test covers an unavailable lookup only without an OWNERS grant.
Suggested fix: Suppress the per-harness authorizationDenied result when opts.Event.AuthorizationAvailable() is false, while keeping execution that OWNERS grants independently allow. Add a test combining MarkAuthorizationUnavailable(), an OWNERS reviewer entry, and a matching write-threshold slash-command harness.
| @@ -490,13 +541,17 @@ jobs: | |||
| KILL_SWITCH="${KILL_SWITCH#\"}" | |||
| KILL_SWITCH="${KILL_SWITCH%\"}" | |||
| if [[ "$KILL_SWITCH" == "true" || "$KILL_SWITCH" == "yes" ]]; then | |||
There was a problem hiding this comment.
[low] scope-creep
Issue #7555 covers notifying users when authorization policy blocks a launch. The PR also changes kill-switch behavior from failing the routing job (exit 1) to a quiet skip, adds a separate paused-dispatch notice (fullsend:dispatch-paused:<actor id>), makes internal/harnessdispatch/core.go evaluate triggers while the kill switch is active, and amends docs/reference/config-reference.md. The PR body discloses this, but the linked issue does not authorize it.
Suggested fix: Descope the kill-switch pause behavior, or file and link an issue that authorizes it.
| "maxLength": 255, | ||
| "description": "Forge login or service account identifier." | ||
| }, | ||
| "numeric_id": { |
There was a problem hiding this comment.
[low] breaking-schema
The new optional actor.numeric_id is additive (not in required), but the actor object sets additionalProperties: false, so consumers validating against a pinned copy of the v1 schema will reject events that carry the field. The README documents it as an additive v1.x change and warns pinned-copy consumers; the schema $id and version are unchanged.
Suggested fix: Keep the README note; consider a schema changelog entry.
| @@ -490,13 +541,17 @@ jobs: | |||
| KILL_SWITCH="${KILL_SWITCH#\"}" | |||
| KILL_SWITCH="${KILL_SWITCH%\"}" | |||
| if [[ "$KILL_SWITCH" == "true" || "$KILL_SWITCH" == "yes" ]]; then | |||
There was a problem hiding this comment.
[low] backward-incompatible
An active kill switch now makes the route job succeed with an empty stage output; before this change the job failed. Callers that treated route-job success as "dispatch proceeded" must now gate on stage != ''. The change is documented in ci-workflows.md and config-reference.md.
Suggested fix: Call out the change in release notes and confirm the shim and scaffold workflows gate on the stage output.
Summary
fullsend issues post-commentCLI (backed byforge.Client) in the dedicated notification job; the dispatch binary emits metadata only so legacy and CEL paths share one serialized producer.docs/contributing/ci-workflows.md; kept comment write access only on the dedicated notification job and serialized notification producers.Fixes #7555
Verification
make lintmake go-vetmake go-testreached all packages; the only failure was the unrelated existing runtime testTestExecuteBehaviourOp_CheckoutBranchRealShellExistingRemote, whose expected synthetic commit subject is changed by this checkout's DCO commit hook.Cryptographic commit signing was unavailable because the configured
gitsignflow requires browser authentication in this headless environment; the commit includes the required DCO sign-off and agent attribution.