chore(gate-115): record the two spend-narrative bindings as answered - #585
Merged
rubenvdlinde merged 1 commit intoSep 10, 2026
Merged
Conversation
`fetchSpendNarrative()` calls `/apps/openconnector/api/sources/{source}/call`
and its spec asserts the path. gate-115 reports both as cross-app lookups
naming a retired app id. The comment beside the call already explained why it
is not repointed; this adds the machine-readable half so the gate stops
re-raising an answered question, and puts the same marker on the assertion
that pins the path.
Re-verified 2026-09-10 against integriq `development`. The route exists under
NEITHER name. SourcesController publishes only test, logs, tripCircuitBreaker
and resetCircuitBreaker, and `git log -S "sources/{source}/call"` and
`git log -S "sources#call"` over integriq's full 3,960-commit history, which
spans the whole openconnector era, both return nothing. The app has no
inference endpoint at all.
So REQ-SAW-006 waits on an integriq surface that has never been built.
Repointing the segment would turn one 404 into another while hiding that gap,
on a diff that reads as a fix.
Recorded with `@stale-fleet-app-id exclude`, the shared exclusion convention
gate-115 reads (.github#738).
Comments only. No behaviour changes, and no test assertion changes: the spec
still asserts the path the caller actually uses.
Contributor
Quality Report — ConductionNL/launchpad @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| format | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| composer | ✅ | ✅ 104/104 | |||
| npm | ✅ | ✅ 527/527 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ✅ | ||||
| Hydra gates | ✅ |
Quality workflow — 2026-09-10 06:11 UTC
Download the full PDF report from the workflow artifacts.
rubenvdlinde
deleted the
chore/gate-115-record-two-answered-connector-lookups
branch
September 10, 2026 07:08
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
14 lines of comment across two files. No code changes and no assertion changes.
fetchSpendNarrative()insrc/services/spendAnalytics.jscalls/apps/openconnector/api/sources/{source}/call, andspendAnalytics.spec.jsasserts that path. Gate-115 (stale-fleet-app-id, shipped today in hydra-gates v1.17.0) reports both as cross-app lookups naming a retired app id. The comment beside the call already said why it is not repointed. This adds the machine-readable half, and puts the same marker on the assertion that pins the path, so the two move together.What was read
Re-verified 2026-09-10 against a clean
developmentclone of integriq. The route exists under neither name.SourcesControllerpublishes exactly four methods:test,logs,tripCircuitBreaker,resetCircuitBreaker. The route table matches:POST /api/sources/test/{id},GET /api/sources/logs, and the two circuit-breaker actions.git log -S "sources/{source}/call"andgit log -S "sources#call"over integriq's full 3,960-commit history both return nothing. That history spans the whole openconnector era, because the repo was renamed rather than forked.Why record rather than repoint
REQ-SAW-006 depends on a connector surface that has never been built. Repointing the segment to
integriqturns one 404 into another, on a diff that reads to the next person as a fix already applied, and it hides the actual gap. The stale name is the more honest of the two.The assertion in the spec gets the same marker rather than a rewrite: it correctly pins the path the caller actually uses, and it should move in the same change that gives REQ-SAW-006 a real integriq endpoint to call.
How it is recorded
@stale-fleet-app-id exclude <reason>, the exclusion convention the rest of the hydra-gates suite already uses, with the reason graded by the sharedexclusion_reason.is_reason_bearing(). Gate-115 learns to read it in ConductionNL/.github#738, which must merge first: CI resolves hydra-gates at@main.Excluded findings are not hidden. The gate prints them under "recorded with a reason-bearing marker" on every run.
Verification
Gate-115 on this branch:
0 cross-app lookup(s),2 finding(s) recorded with a reason-bearing @stale-fleet-app-id exclude marker. No register-slug findings in this repo.🤖 Generated with Claude Code