6000x-input-contract — PR #669 comment + frontend/DevOps handoff
04 — PR #669 comment + frontend/DevOps handoff
Branch: Nuxt PR / deploy closeout.
Status: PR #669 OPEN/MERGEABLE; PR comment posted explaining
unrelated Counting Contract Check failure. Merge remains the
frontend/DevOps cut window per macro authority.
1. PR live state (re-verified this macro)
GET /repos/Huyen1974/web-test/pulls/669
{
"number": 669,
"state": "OPEN",
"mergeable": "MERGEABLE",
"mergeStateStatus": "UNSTABLE",
"baseRefName": "main",
"headRefName": "feat/iu-core-three-axis-envelope",
"headRefOid": "e6a56598a8ddb910546e20c3f653d63bb994de77"
}
UNSTABLE is driven by a single failing check on this PR — see §2.
2. Failing check — Counting Contract Check (pre-existing drift)
Workflow: Nuxt 3 CI → job Counting Contract Check → step Verify Counting Contract (Điều 26 v2.1.1). Job log final lines:
CAT-ALL contract....... FAIL (CAT-ALL=1416064 != SUM(atom active)=1199853)
Composition levels..... PASS (all managed have composition_level)
Registry coverage...... PASS (169 collections tracked)
##[error]Counting Contract FAILED — Điều 26 violation
##[error]Process completed with exit code 1.
Why the failure is unrelated to this PR
The check queries live production data at
directus.incomexsaigoncorp.vn/items/meta_catalog — not any file
shipped by this PR. The 216 211-row delta is drift in the live
meta_catalog table, not in the patch's diff.
Patch boundary verification (greps against files in the PR's diff):
grep -E 'meta_catalog|composition_level|CAT-ALL'→ 0 matchesgrep -E 'pg|postgres|psycopg'→ 0 matches
The PR diff touches only:
composables/useThreeAxisEnvelope.ts—useDirectus<>()reader.pages/admin/iu-three-axis.vue— UI consuming the composable.nuxt.config.tspatch — env wiring for the IU Core surface.
3. Functionally green on this PR's scope
Of 17 checks reporting on PR #669, 16 are SUCCESS and the 17th
(Counting Contract Check) tests unrelated production state:
| Workflow | Job | Status |
|---|---|---|
| Critical File Guard | check-critical-files | SUCCESS |
| E2E Tests | e2e | SUCCESS |
| Enforce Table Rule | check-custom-tables | SUCCESS |
| Nuxt 3 CI | build | SUCCESS (×2 runs) |
| Nuxt 3 CI | Contract Schema Validation | SUCCESS |
| Nuxt 3 CI | Counting Contract Check | FAILURE (pre-existing, unrelated) |
| Terraform Deploy | Pass Gate | SUCCESS |
| Terraform Deploy | Quality Gate | SUCCESS |
| Terraform Deploy | E2E Smoke Test | SUCCESS |
| Terraform Deploy | Build Directus Artifact | SKIPPED |
| required-docs-guard | guard | SUCCESS |
4. Comment posted (URL is the handoff)
Comment URL: https://github.com/Huyen1974/web-test/pull/669#issuecomment-4527166744
The comment body explains the unrelated drift and lists the boundary greps. It explicitly routes resolution to frontend/DevOps under the Điều 26 counting-contract owner. No code change in this PR can fix the drift; rebasing the branch would be a no-op for this check.
5. Macro authority preserved (no over-reach)
- No merge. The macro authority excludes merge.
- No branch rebase / update. The patch is identical to 6000x; rebasing chases an unrelated failure and would risk other side effects.
- No image rebuild.
incomex-nuxtbuild is owned by frontend/DevOps. - No
incomex-nuxtrestart. - No deploy-vps.yml trigger. That workflow is gated on
workflow_runofmain; merging the PR is the only legitimate trigger.
6. Frontend/DevOps next-action checklist
- Resolve
meta_catalogCAT-ALL drift (216 211-row delta) under Điều 26 ownership. The fix is in production data, not inHuyen1974/web-testsource. - Re-run
Counting Contract Check(gh run rerunon the failed job) oncemeta_catalogis reconciled. - With all checks green, merge PR #669;
deploy-vps.ymlwill fire onworkflow_runofmainand redeployincomex-nuxt. - Verify post-deploy: route
/admin/iu-three-axisreturns 200 and reads the 163-rowiu_three_axis_envelopecollection throughuseDirectus<>.
Rollback (if the deploy goes wrong):
- Revert the merge commit, re-trigger
deploy-vps.yml. - Or
incomex-nuxtrollback to the previously-running image tag (d28gmr-1778407456per 5500x discovery — verify withdocker ps --filter name=incomex-nuxt --format '{{.Image}}'immediately before merging).