Align auto-translation trigger with bDS2 (manual save only, not publish) #87

Closed
opened 2026-07-20 19:44:02 +00:00 by hugo · 2 comments
Owner

Source: Audit section 2.17. Related: #59 (saving a post triggers "create missing translations" task).

bDS2: ../bDS2/lib/bds/posts.ex update_post schedules auto-translation only when called with auto_translate: true — an explicit manual editor save; comment: "never on post creation or autosave". Publish does not schedule translation.

Current behaviour (RuDS): crates/bds-ui/src/app.rs calls schedule_post_auto_translation from BOTH save_post_editor (~line 5641) and the publish handler (~line 5947). The publish-time trigger is behaviour bDS2 does not have. Note #59 complains about the save-time trigger UX too — resolve both together.

Spec: specs/translation.allium ScheduleAutoTranslation fires on PostSavedForAutoTranslation(post) — save, not publish. Also specs/action_patterns.allium AutoTranslationChain.

Task: Clarify desired UX with the maintainer in light of #59, then: match bDS2 (drop the publish-time trigger) or update the spec if publish-time is wanted. Ensure autosave paths (if any) never schedule. All automatic AI activity must remain gated by airplane mode with local-model-or-toast per AGENTS.md — verify schedule_post_auto_translation's active_endpoint guard covers that.

Acceptance: Trigger points match the decided spec; specs/translation.allium updated + allium validated; #59 cross-referenced.

**Source:** Audit section 2.17. Related: #59 (saving a post triggers "create missing translations" task). **bDS2:** `../bDS2/lib/bds/posts.ex` `update_post` schedules auto-translation only when called with `auto_translate: true` — an explicit manual editor save; comment: "never on post creation or autosave". Publish does not schedule translation. **Current behaviour (RuDS):** `crates/bds-ui/src/app.rs` calls `schedule_post_auto_translation` from BOTH `save_post_editor` (~line 5641) and the publish handler (~line 5947). The publish-time trigger is behaviour bDS2 does not have. Note #59 complains about the save-time trigger UX too — resolve both together. **Spec:** `specs/translation.allium` ScheduleAutoTranslation fires on `PostSavedForAutoTranslation(post)` — save, not publish. Also `specs/action_patterns.allium` AutoTranslationChain. **Task:** Clarify desired UX with the maintainer in light of #59, then: match bDS2 (drop the publish-time trigger) or update the spec if publish-time is wanted. Ensure autosave paths (if any) never schedule. All automatic AI activity must remain gated by airplane mode with local-model-or-toast per AGENTS.md — verify `schedule_post_auto_translation`'s `active_endpoint` guard covers that. **Acceptance:** Trigger points match the decided spec; specs/translation.allium updated + `allium` validated; #59 cross-referenced.
hugo added the bug label 2026-07-20 19:44:02 +00:00
Author
Owner

decision by the designer: auto-translation only happens on first manual save of a post. In that sense, follow bDS2 behaviour. also it might be that this is already covered in #59 so check what is still to be done for this topic.

decision by the designer: auto-translation only happens on first manual save of a post. In that sense, follow bDS2 behaviour. also it might be that this is already covered in #59 so check what is still to be done for this topic.
Author
Owner

Implemented in 2dcaf7f. Automatic post translation is now triggered only by an explicit manual canonical save; publishing no longer schedules missing translations, and autosave/internal persistence remains non-triggering. Added a red/green publish regression that confirms the post is published without AI tasks while the existing manual-save regression still uses the airplane endpoint and queues one task per missing language. Updated README plus specs/translation.allium and specs/action_patterns.allium, superseding #59's retained publish behavior. Targeted allium check/analyse report no diagnostics/findings; cargo build --workspace and cargo test --workspace pass. Neutral review matches bDS2's auto_translate-only update path.

Implemented in 2dcaf7f. Automatic post translation is now triggered only by an explicit manual canonical save; publishing no longer schedules missing translations, and autosave/internal persistence remains non-triggering. Added a red/green publish regression that confirms the post is published without AI tasks while the existing manual-save regression still uses the airplane endpoint and queues one task per missing language. Updated README plus specs/translation.allium and specs/action_patterns.allium, superseding #59's retained publish behavior. Targeted allium check/analyse report no diagnostics/findings; cargo build --workspace and cargo test --workspace pass. Neutral review matches bDS2's auto_translate-only update path.
hugo closed this issue 2026-07-22 16:11:30 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: hugo/RuDS#87