Files
summercms/.planning/phases/14.2.1-translate-plugin/14.2.1-DISCUSSION-LOG.md
2026-10-06 10:41:43 +02:00

79 lines
2.6 KiB
Markdown

# Phase 14.2.1: Translate plugin - Discussion Log
> **Audit trail only.** Do not use as input to planning, research, or execution agents.
> Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.
**Date:** 2026-10-06
**Phase:** 14.2.1-translate-plugin
**Areas discussed:** PHP source of truth, what ships, model API, where it boots
---
## PHP source of truth
| Option | Description | Selected |
|--------|-------------|----------|
| Fonoteka pin `725d547` | Newest Płytarium checkout | ✓ |
| grzyby pin `6e0c146` | Older ancestor | |
| GitHub master at plan time | Moving target | |
**User's choice:** Freeze at `725d547`, read from the Fonoteka path. Read-only with the same urgent-upgrade re-pin rule as Journal.
---
## What ships
| Option | Description | Selected |
|--------|-------------|----------|
| Lean: Locale + TranslatableModel | Unblocks Journal | ✓ |
| Lean plus Messages catalogue | Extra admin | |
| Full PHP surface | Picker, AI/theme, import/export | |
**User's choice:** Lean. Cabana `mltext`/`mlmarkdown`. PHP Translator resolution (URL prefix / session / cookie / default). Seed `en`+`pl`.
---
## Model API
| Option | Description | Selected |
|--------|-------------|----------|
| `Translatable() []string` like PHP `$translatable` | Journal copies the PHP list | ✓ |
| YAML-only; models unaware | | |
| Same Winter attribute tables | Cutover-compatible | ✓ |
| JSON column per field | Breaks Winter import | |
| Fallback to default locale | PHP behaviour | ✓ |
| Minimum API (`WithLocale`, get/set, Translator) | Enough for Journal | ✓ |
| 1:1 every PHP method | | |
**User's choice:** PHP-like declaration, same tables, PHP fallback, minimum exported API.
---
## Where it boots
| Option | Description | Selected |
|--------|-------------|----------|
| Same `sm-grzybyfunkcjonalne-app` | Matches Phase 15 D-21 | ✓ |
| In-module testhost | | |
| User creates `sm-translate-plugin` remote | Does not exist yet | ✓ |
| Sibling checkout | `summercms/sm-translate-plugin/` | ✓ |
| Proof: Locales admin + fixture en+pl | | ✓ |
| Plugin tests only | | |
**User's choice:** Grzyby host with user+translate. User creates the public remote. Proof is boot + Locales admin + fixture model.
---
## Claude's Discretion
- Exact table/column names from frozen PHP updates
- ML field identifiers and docs/OpenAPI/`dist/` bundling
- How `mlmarkdown` shares work with Phase 15 markdown
- Plan count and split
- Security-review agent
## Deferred Ideas
- Messages admin, CMS locale components, AI/theme commands
- ROADMAP Phase 15 depends_on should include 14.2.1 (`$gsd-phase --edit 15`)