agent/php/tests
Snider d4f2fa9204 refactor(forge): route ScanForWork + ManagePullRequest through MetaReader
ScanForWork and ManagePullRequest now depend on the MetaReader
interface (added in #89) instead of reading raw Forgejo body /
description / PR text. Epic child-linkage comes from
EpicMeta.children, PR merge decisions come from PRMeta.state /
mergeability / checkStatuses. The returned shape drops issue_body
and replaces it with structural issue_state / issue_labels.

Adds a feature test that injects a mocked MetaReader carrying
intentionally-tainted body/description/review_text fields and
recursively asserts none of those keys appear in the output of
either action — the regression fence for the RFC rule that body
content must never reach pipeline decisions.

Closes tasks.lthn.sh/view.php?id=90

Co-authored-by: Codex <noreply@openai.com>
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-23 18:21:28 +01:00
..
Feature refactor(forge): route ScanForWork + ManagePullRequest through MetaReader 2026-04-23 18:21:28 +01:00
Fixtures revert fcb9c189e5 2026-04-23 12:32:57 +01:00
Unit feat(pipeline): add MetaReader contract + Forgejo-backed implementation 2026-04-23 18:09:54 +01:00
UseCase revert fcb9c189e5 2026-04-23 12:32:57 +01:00
views revert fcb9c189e5 2026-04-23 12:32:57 +01:00
.DS_Store revert fcb9c189e5 2026-04-23 12:32:57 +01:00
Pest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
TestCase.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00