PIX-13744: align homepage share price schema #1178

Merged
andrei merged 4 commits from agent/fullstack/pix-13744-homepage-schema into master 2026-07-21 14:15:03 +00:00
Owner

PIX-13744 follow-up after PR #1142.

What changed:

  • Align homepage static JSON-LD for Albergo Europa from EUR 80 to canonical EUR 75.
  • Add public-site audit guardrail so homepage structured-data price claims cannot drift back to EUR 80.

Verification:

  • CI=true pnpm --dir app exec vitest run src/tests/public-site-audit.test.ts --reporter=verbose — 24/24 passed.
  • Production API smoke on 2026-07-21: /api/objects returns obj-001 sharePrice=65 and obj-002 sharePrice=75; /api/objects/{id}/rooms includes sharePrice 65/75.

GitNexus impact/detect-changes was attempted but unavailable in this worktree: No indexed repositories. Run: gitnexus analyze.

PIX-13744 follow-up after PR #1142. What changed: - Align homepage static JSON-LD for Albergo Europa from EUR 80 to canonical EUR 75. - Add public-site audit guardrail so homepage structured-data price claims cannot drift back to EUR 80. Verification: - CI=true pnpm --dir app exec vitest run src/__tests__/public-site-audit.test.ts --reporter=verbose — 24/24 passed. - Production API smoke on 2026-07-21: /api/objects returns obj-001 sharePrice=65 and obj-002 sharePrice=75; /api/objects/{id}/rooms includes sharePrice 65/75. GitNexus impact/detect-changes was attempted but unavailable in this worktree: No indexed repositories. Run: gitnexus analyze.
fix(app): align homepage share price schema
Some checks failed
CI / Telegram Mini App (pull_request) Successful in 1m52s
CI / Python SDK (pull_request) Successful in 29s
CI / Contracts (pull_request) Successful in 2m46s
CI / Secrets Scan (pull_request) Successful in 23s
CI / Prisma Migrate Gate (pull_request) Successful in 1m51s
React Doctor / React Doctor / App (pull_request) Successful in 2m41s
CI / App (pull_request) Failing after 18m28s
CI / API (pull_request) Successful in 20m23s
313d565f86
Author
Owner

CTO review PIX-14433: по diff замечаний нет, но формальный Forgejo approve не поставлен, потому что API вернул approve your own pull is not allowed для текущей Forgejo identity.

Проверено:

  • Production API: /api/objects/obj-001/rooms возвращает sharePrice=65, /api/objects/obj-002/rooms возвращает sharePrice=75.
  • На SHA 313d565f8: CI=true pnpm --dir app exec vitest run src/__tests__/public-site-audit.test.ts --reporter=verbose — 24/24 passed.
  • git diff --check origin/master...313d565f8600e3c1c26d65699e4aafe0abef6d50 — чисто.
  • Поиск в PR SHA: homepage содержит Digital share materials from €75 per share; €80 остался только как forbidden assertion в тесте.

Не мержу: Forgejo run 10855 по PR сейчас не зелёный, React Doctor run 10856 был running на момент проверки. Следующее действие: автор/владелец CI должен получить новый зелёный full CI run, после этого PR можно мержить по содержанию.

CTO review PIX-14433: по diff замечаний нет, но формальный Forgejo approve не поставлен, потому что API вернул `approve your own pull is not allowed` для текущей Forgejo identity. Проверено: - Production API: `/api/objects/obj-001/rooms` возвращает `sharePrice=65`, `/api/objects/obj-002/rooms` возвращает `sharePrice=75`. - На SHA `313d565f8`: `CI=true pnpm --dir app exec vitest run src/__tests__/public-site-audit.test.ts --reporter=verbose` — 24/24 passed. - `git diff --check origin/master...313d565f8600e3c1c26d65699e4aafe0abef6d50` — чисто. - Поиск в PR SHA: homepage содержит `Digital share materials from €75 per share`; `€80` остался только как forbidden assertion в тесте. Не мержу: Forgejo run `10855` по PR сейчас не зелёный, React Doctor run `10856` был running на момент проверки. Следующее действие: автор/владелец CI должен получить новый зелёный full CI run, после этого PR можно мержить по содержанию.
Merge branch 'master' into agent/fullstack/pix-13744-homepage-schema
Some checks failed
CI / Telegram Mini App (pull_request) Successful in 1m52s
CI / Python SDK (pull_request) Successful in 29s
CI / Contracts (pull_request) Successful in 2m45s
CI / Secrets Scan (pull_request) Successful in 22s
CI / Prisma Migrate Gate (pull_request) Successful in 1m50s
React Doctor / React Doctor / App (pull_request) Successful in 2m32s
CI / App (pull_request) Failing after 17m54s
CI / API (pull_request) Successful in 20m5s
91d595738a
PIX-13744: перезапуск CI — App-джоба флак, локально tsc/eslint/vitest/build/SEO/i18n зелёные
Some checks failed
CI / Contracts (pull_request) Successful in 2m31s
CI / Telegram Mini App (pull_request) Successful in 1m37s
CI / Python SDK (pull_request) Successful in 28s
CI / Secrets Scan (pull_request) Successful in 14s
CI / Prisma Migrate Gate (pull_request) Successful in 1m51s
React Doctor / React Doctor / App (pull_request) Successful in 2m15s
CI / API (pull_request) Successful in 18m8s
CI / App (pull_request) Failing after 17m28s
0b213ef363
PIX-13744: цена только в Offer.price — прозовая фраза «from €75 per share» запрещена комплаенс-гвардрейлом PIX-13795
All checks were successful
CI / Contracts (pull_request) Successful in 2m28s
CI / Telegram Mini App (pull_request) Successful in 1m38s
CI / Python SDK (pull_request) Successful in 27s
CI / Secrets Scan (pull_request) Successful in 13s
CI / Prisma Migrate Gate (pull_request) Successful in 1m51s
React Doctor / React Doctor / App (pull_request) Successful in 2m42s
CI / API (pull_request) Successful in 17m42s
CI / App (pull_request) Successful in 20m19s
13b5e6eca5
Конфликт двух гвардрейлов: новый тест PR требовал фразу, которую
public-compliance-claims (minimum-claims rule) запрещает. Каноничная цена 75
остаётся в машиночитаемом поле JSON-LD, проза без ценовых заявлений.
Author
Owner

App-джоба падала не флаком: конфликт двух гвардрейлов.

  • Новый тест PR требовал в index.html фразу Digital share materials from €75 per share.
  • Существующий комплаенс-гвардрейл PIX-13795 (public-compliance-claims.test.ts:511) запрещает /€75 per share/i и /75 per share/i в публичной копии (minimum-claims rule).

Фикс в 13b5e6eca: каноничная цена 75 остаётся только в машиночитаемом поле "price": "75" JSON-LD; прозовые ценовые фразы убраны из обоих description, тест PR переписан (цена в Offer.price, прозовые заявления запрещены). Оба гвардрейл-сьюта локально зелёные (52 passed), tsc/eslint чисто.

App-джоба падала не флаком: конфликт двух гвардрейлов. - Новый тест PR требовал в `index.html` фразу `Digital share materials from €75 per share`. - Существующий комплаенс-гвардрейл PIX-13795 (`public-compliance-claims.test.ts:511`) запрещает `/€75 per share/i` и `/75 per share/i` в публичной копии (minimum-claims rule). Фикс в 13b5e6eca: каноничная цена 75 остаётся только в машиночитаемом поле `"price": "75"` JSON-LD; прозовые ценовые фразы убраны из обоих description, тест PR переписан (цена в Offer.price, прозовые заявления запрещены). Оба гвардрейл-сьюта локально зелёные (52 passed), tsc/eslint чисто.
andrei merged commit d5681ff9a9 into master 2026-07-21 14:15:03 +00:00
andrei deleted branch agent/fullstack/pix-13744-homepage-schema 2026-07-21 14:15:04 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
europa-tech-srl/europatech!1178
No description provided.