Repository navigation
Apply native website noindex from Launchplane production state - #421
Conversation
|
Review result: weighed Weighed the Anthropic Claude Opus 5.5 review and its bounded follow-up on the changed rollback boundary against current head 57014bf. Acted on: combined objects must select the same native website/origin before mutation; shared origin parsing preserves legacy acceptance; failed-write tests now let analytics and the legacy parameter change before failing only the head write, then verify rollback. Native noindex assertions check directive tokens and no longer pin error wording. The documentation names the separately owned producer schema/generator/dry-run caller and preserves independent legacy indexing choices. The strengthened native test reproduced an Odoo 19 stable-cache leak after savepoint rollback. Cache invalidation now happens after unwind where Registry.clear_cache exists. The follow-up caught that API is absent on the pinned Odoo 20 image; the final capability check preserves its already passing native rollback path. Removed the permissive MagicMock registry. Native fixtures, not the unit fake, qualify cache behavior. Final native reruns and current-head CI/build evidence are tracked separately before Ready. Declined: hostname-only ambiguity matching contradicts native Odoo routing, which matches exact host:port first and only then tries a portless fallback (odoo/odoo 19.0 addons/website/models/website.py, _get_current_website_id). Kept exact managed-prefix removal and refusal of unfamiliar reserved markup to preserve every unmanaged byte; a hypothetical future marker migration is not current work. Kept the second binding/digest read across legacy writes for trustworthy transaction evidence. Did not suppress cache-invalidation failures: an unexpected cleanup failure must remain visible with the original refusal in its exception chain. Inspection completed on all four changed Python files, with no coverage gaps and helper closure verified. Raw verdict RED is retained: 13 unresolved fixture imports at lines 8–16 are lxml/html, Odoo/tools/HttpCase/tagged, and the consumer plus its five imported symbols, supplied and executed in the native image. The callable warning at consumer line139 derives from the lightweight unit registry lacking that API; the native19 run executes the real method and native20 has no method. Three legacy implicit-None return warnings are preexisting. Launchplane spelling is a product name. No suppression or dependency expansion was added. Nothing for the Client to test remains appropriate: source receiver and fabricated fixtures only. No state, deployment, restore input or original/copy was changed. Removed: duplicate origin parsing and ineffective rollback/wording assertions. Net lines: +422, primarily native HTTP, transaction and rollback proof. |
|
Reviewed, published receiver contract: {"instance":"prod","website_indexing":{"website_id":1,"public_origin":"https://site.example.test","production_use":"prelaunch"}}The existing post-deploy envelope gains this optional sibling of Dry-run returns website_id, public_origin, production_use, field=custom_code_head, before_sha256, after_sha256, changed, managed_noindex_before and managed_noindex_after. Apply prints Native qualification: HTTP200 on /contactus; noindex count 0→1→1→0→1 across prelaunch/repeat/live/inverse; existing head script/nofollow retained; robots.txt and canonical unchanged; unrelated host unchanged; ambiguous/mismatched origin refuses; a planted head-write failure rolls back earlier analytics/parameter writes; outer rollback restores protected HTTP. Odoo19 additionally proves cache invalidation after savepoint unwind. No sitemap or search-result removal claim. Synthetic before head SHA256: Native19 job CI and build-only consumer checks for this exact head are pending; PR stays draft until checked Ready/train. No product artifact published or target changed. Producer owner cbusillo/launchplane#5914 can now continue from this receiver shape. |
|
Current-head qualification complete for
Removed: duplicated origin parsing and ineffective rollback/wording assertions. Net lines: +422. |
|
Ready for the merge train Head: 57014bf |
|
Launchplane completed the merge-train step for this pull request.
Launchplane finished the merge-train step for this pull request. Launchplane manages this comment and will update it as the train moves. |
…e6a847768ef3e14: merge PR #421
A Launchplane production-use transition can now apply native website noindex through the existing post-deploy consumer. The optional
website_indexingobject containswebsite_id, exact HTTPSpublic_origin, andproduction_use(prelaunchorlive). Prelaunch prepends one managed element towebsite.custom_code_head; live removes only that element. Existing head content, domain, routing, robots choices and unrelated sites are preserved.The receiver refuses ambiguous or mismatched bindings before writes, requires matching selectors when combined with legacy settings, and keeps native readback inside the existing transaction with a rollback savepoint.
plan_website_indexingreturns read-only selector/state and before/after SHA-256 evidence; apply emits the verified receipt without committing. The existing legacy settings contract and digest retain their meaning. Live alone does not override independent indexing choices. This makes no sitemap-removal or search-result-removal claim.Producer integration belongs to cbusillo/launchplane#5914: its strict post-deploy schema needs the optional object, its existing generator must embed this exact committed consumer, and its narrow caller must invoke the dry-run function. This PR adds no target operation or product deployment.
Validation: 244 focused safety/consumer tests, repository Ruff checks and package build pass. Odoo 19 and 20 isolated native HTTP fixtures pass on head
57014bfa9cd4e0f773e81c1b01fa1b45d302ea2b, including combined legacy-write rollback and native parameter-cache readback. Full CI, both native-Odoo CI jobs and both exact-head tenant consumer-build checks pass; artifact SHA/platform evidence is recorded below. One Anthropic review was weighed, with selector and rollback-test findings fixed. Native PyCharm completed: remaining raw RED findings are fixture-only imports and one dynamic cache API inference, individually triaged against native execution in the review receipt.Removed: duplicated legacy origin parsing and ineffective rollback/wording assertions. Net lines: +422; native transaction, HTTP, isolation and rollback qualification account for most of the addition. No addon or daemon is deployed.
Client test notes
Nothing for the Client to test: this is a source receiver and isolated qualification. Product adoption and operations remain separately owned.
Fixes #420