Fix community edition build outcome ledger
`packages/editions/features.toml` lists `apps/api/app/outcome_ledger/benchmark.py` under the `exec_dashboard` feature (cloud-only), but `apps/api/app/routes/portfolio.py` (line 38) and `apps/api/app/routes/projects.py` (line 77) import `app.outcome_ledger.benchmark` unconditionally and are themselves shipped in the community edition. The community-edition tooling suite fails on develop for this reason:
```
python3 -m pytest -q tools/tests/test_community_edition.py
...
[imports] apps/api/app/routes/portfolio.py:38: imports 'app.outcome_ledger.benchmark', which is not in the tree
[imports] apps/api/app/routes/projects.py:77: imports 'app.outcome_ledger.benchmark', which is not in the tree
8 failed, 64 passed
```
Observed on develop at 780ac61882 and reproduced with the test file untouched (Task 12427 recon). Fix: guard the two imports behind the edition feature the way the rest of the edition seam does, or move the benchmark reads those routes make into a module the edition ships; then the eight `test_community_edition.py` cases are green again.
Out of scope: any other community-edition mirror change; the benchmark feature itself.
Done means:
- `python3 -m pytest -q tools/tests/test_community_edition.py` passes on the branch.
- `./dc check quick` green.
Required checks: Community edition tooling suite
Outcome
Already shipped: develop e09f3999ab (Task 12441) has the same literal edition guard; test_community_edition.py 72 passed on develop af60f591f8. Superseded PR #7668 closed. Memory: none applied.
Artifacts
Activity
- Created
- Run
- Runner started
- Runner ended (done)
- Run
- Runner started
- Runner ended (done)