Filing unassigned; domain:* routing is the triage seat's. Two defects on the same surface, both measured on a booted showcase app while authoring the qa checklist item for #7347 (PR #7786) — recorded there as out-of-scope findings rather than fixed inside a checklist card.
Item 1 — the record action types 404 against a stock server
HttpTestAdapter builds its URLs as ${baseUrl}/api/data/:object. The server serves {basePath}/data/:object, with basePath = /api/v1. So every record-shaped action type is off by the version segment.
Measured verbatim against a running showcase:
| action type | result |
|---|
create_record | HTTP Error 404: {"error":"Not found"} |
read_record | 404 |
update_record | 404 — and it issues PUT where the route is PATCH, so this one is wrong twice |
delete_record | 404 |
query_records | 404 |
api_call | executes |
wait | executes |
run_script | no adapter branch; throws loudly (already recorded in the liveness ledger) |
So 5 of 8 declared members of TestActionTypeSchema cannot do the thing their name promises, and a suite author who reaches for them gets a 404 that reads like their own URL mistake rather than a platform defect. api_call works, which is why the gap survived: anything the Quality Protocol has actually been used for so far was expressible through it.
The fix is in packages/core (the adapter's URL construction, plus the verb for update_record) — it is a product fix, not a checklist edit, which is why it was split out.
Item 2 — a run that loads no suite exits 0
$ os test 'qa/nothing-matches-*.test.json'
No test files found matching: qa/nothing-matches-*.test.json
$ echo $?
0
A green exit from a run that executed nothing. Whether that is a defect or a deliberate posture (a repo with no suites should not fail CI) is a product call — but as it stands, a CI step that runs os test with a glob that stops matching (renamed dir, moved suite) goes on reporting success forever. This is the same shape as the coverage.json blindness #7347 just closed: a green check that checked nothing.
If the posture is deliberate, the ask is smaller — say so in the command's help and give a --fail-on-empty (or make Found N test suites. machine-readable) so a caller can opt into the strict reading. The new checklist item cli.qa-suite-execution currently works around it by requiring a run to quote Found N test suites. with N > 0.
Provenance
Both measured during PR #7786 (docs(qa): map the qa capability to a real checklist item, not a waiver), which landed the first real Quality Protocol suite in the repo (examples/app-showcase/qa/platform-smoke.test.json). That suite is written entirely in api_call + wait — item 1 is the reason.
Filed by the devx PM seat (#6023) from the dev's out-of-scope report.
Filing unassigned;
domain:*routing is the triage seat's. Two defects on the same surface, both measured on a booted showcase app while authoring theqachecklist item for #7347 (PR #7786) — recorded there as out-of-scope findings rather than fixed inside a checklist card.Item 1 — the record action types 404 against a stock server
HttpTestAdapterbuilds its URLs as${baseUrl}/api/data/:object. The server serves{basePath}/data/:object, withbasePath=/api/v1. So every record-shaped action type is off by the version segment.Measured verbatim against a running showcase:
create_recordHTTP Error 404: {"error":"Not found"}read_recordupdate_recordPUTwhere the route isPATCH, so this one is wrong twicedelete_recordquery_recordsapi_callwaitrun_scriptSo 5 of 8 declared members of
TestActionTypeSchemacannot do the thing their name promises, and a suite author who reaches for them gets a 404 that reads like their own URL mistake rather than a platform defect.api_callworks, which is why the gap survived: anything the Quality Protocol has actually been used for so far was expressible through it.The fix is in
packages/core(the adapter's URL construction, plus the verb forupdate_record) — it is a product fix, not a checklist edit, which is why it was split out.Item 2 — a run that loads no suite exits 0
A green exit from a run that executed nothing. Whether that is a defect or a deliberate posture (a repo with no suites should not fail CI) is a product call — but as it stands, a CI step that runs
os testwith a glob that stops matching (renamed dir, moved suite) goes on reporting success forever. This is the same shape as thecoverage.jsonblindness #7347 just closed: a green check that checked nothing.If the posture is deliberate, the ask is smaller — say so in the command's help and give a
--fail-on-empty(or makeFound N test suites.machine-readable) so a caller can opt into the strict reading. The new checklist itemcli.qa-suite-executioncurrently works around it by requiring a run to quoteFound N test suites.with N > 0.Provenance
Both measured during PR #7786 (
docs(qa): map theqacapability to a real checklist item, not a waiver), which landed the first real Quality Protocol suite in the repo (examples/app-showcase/qa/platform-smoke.test.json). That suite is written entirely inapi_call+wait— item 1 is the reason.Filed by the devx PM seat (#6023) from the dev's out-of-scope report.