Skip to content

⬆️ Bump QuantEcon/action-translation from 0.15.0 to 0.16.0#131

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/github_actions/QuantEcon/action-translation-0.16.0
Closed

⬆️ Bump QuantEcon/action-translation from 0.15.0 to 0.16.0#131
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/github_actions/QuantEcon/action-translation-0.16.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 15, 2026

Copy link
Copy Markdown
Contributor

Bumps QuantEcon/action-translation from 0.15.0 to 0.16.0.

Release notes

Sourced from QuantEcon/action-translation's releases.

v0.16.0 — Sonnet 5

What changes for you

The default Claude model is now claude-sonnet-5 (was claude-sonnet-4-6). This is the one change action users will notice. It applies to sync, review, and all CLI commands.

To keep the previous model, pin the action to @v0.15.0 or set the model explicitly via the claude-model input (action) or --model (CLI).

Target repos need to bump their workflow pins to @v0.16.0 (or @v0.16) to pick this up — the release alone changes nothing for a repo still pinned to @v0.15.0.

Changed

  • Default model → claude-sonnet-5. Near-Opus quality on coding/agentic work at Sonnet-tier cost.
  • Model config centralized in src/models.ts (DEFAULT_CLAUDE_MODEL), so future upgrades are a one-line change. Validation patterns now recognise claude-sonnet-5 and claude-opus-4-8.
  • Thinking stays disabled tool-wide — now on evidence, not caution. Sonnet 5 runs adaptive thinking by default. We measured it rather than guessing: the parameter demonstrably engages (1607 → ~6000 output tokens on a reasoning prompt), but on real translation it adds only +24–32 tokens even at effort: high, and an Opus judge scored the variants within noise of each other. Adaptive thinking self-regulates to ~zero on this task, so enabling it is a no-op in cost, latency and quality. Off is now a settled decision rather than a hold. See experiments/thinking-sonnet5/REPORT.md.
  • max_tokens budgets centralized and raised for Sonnet 5's tokenizer (~30% more tokens for the same text): section translation 8192 → 16384, whole-document 32768 → 64000, review verdicts 1500 → 8192, analytical CLI calls → 8192. max_tokens is a ceiling, not a charge — larger caps only prevent truncation.
  • Doc cost figures refreshed for Sonnet 5 pricing.

Added

  • Deterministic French typography (src/typography.ts) — inserts the non-breaking space French requires before ; : ! ?.

    Scope: the translate init (CLI) path only. This does not change how the action syncs translations. Worth stating plainly, because the opposite is the natural assumption: applyTypography appears zero times in dist-action/index.js. Wiring it into sync is a design question tracked in #81.

    Why it exists: the prompt has asked for this since French support landed, and both Sonnet 5 and Opus 4.8 comply 0% of the time — identically. It isn't a model-quality problem. The models already apply the convention (they write Bonjour !), they just emit an ordinary space where French typography wants U+00A0. The two are visually identical, so the defect only shows when a line wraps and orphans the punctuation. A rule about an invisible character doesn't survive the model; a deterministic pass is the right tool.

  • scripts/typography/apply.mjs — back-applies typography to an already-translated repo. Refuses to write unless the only difference is spacing before high punctuation.

  • scripts/glossary/ + the glossary-review skill — decides which terminology a new lecture series needs pinned, by translating a sample with two different models and keeping only the terms they disagree on. A term both models already render identically needs no entry: it costs input tokens in every prompt forever and changes no output. On the French programming corpus this cut 176 proposed terms to 11.

  • 51 tests (1005 → 1056, 39 → 40 suites).

Recommendation: use Opus for one-time bulk seeds

Sonnet 5 remains the default for ongoing sync. For a one-time init seed, --model claude-opus-4-8 is worth the 1.66×: across a 5-lecture French trial, Opus showed zero cross-lecture terminology drift where Sonnet 5 drifted on 5 terms, and was correct where Sonnet wasn't (mutable, not muable). Output lengths were near-identical, so the premium is purely the price ratio (~$6.3 → ~$10.4 for a 26-lecture corpus) — cheap for a corpus a native speaker then reviews.

Caveat: n=5 lectures, one language.

Full changelog: https://github.com/QuantEcon/action-translation/blob/v0.16.0/CHANGELOG.md

Changelog

Sourced from QuantEcon/action-translation's changelog.

[0.16.0] - 2026-07-15

Added

  • Deterministic French typography (src/typography.ts): inserts the non-breaking space French requires before ; : ! ?. The translation prompt has asked for this since French support landed and the model reliably ignores it — a measured Opus translation of python_by_example.md came back with 0 × U+00A0 and 16 plain spaces before high punctuation. This is a text transform with an exact specification, so it is now applied in code rather than requested. Prose is identified by classifying each line (MyST fences nest — a {code-cell} inside a {note} is code inside prose) and only substituting where the mark is followed by whitespace or end-of-line, so code (a ? b : c), math ($\{x : x > 0\}$), frontmatter, MyST anchors ((sec:intro)=) and URLs are left alone. Unknown directives are treated as code: a missing space is cosmetic, a corrupted code cell is not. Scope: the translate init (CLI) path only — the action's sync path is not yet wired, so this release does not change how synced translations are typeset (tracked as follow-up). Runs before heading-map generation, so the map is derived from the same strings that land in the body; note that js-yaml escapes U+00A0 as \_ in double-quoted scalars, so French heading maps now serialise as "…LLM\_?" (valid YAML, round-trips).
  • scripts/typography/apply.mjs: back-applies typography rules to an already-translated repo — for a repo seeded before the rules existed, or when a rule changes later. Refuses to write unless the only difference is spacing before high punctuation (body compared as text, frontmatter as parsed YAML, since re-serialising legitimately changes quoting).
  • scripts/glossary/ and the glossary-review skill: tooling to decide which terminology a new lecture series needs pinned, by translating a sample with two different models and keeping only the terms they disagree on. A term both models already render identically needs no entry — it costs input tokens in every prompt forever and changes no output. On the French programming corpus this cut 176 proposed terms to 11.
  • 51 tests (1005 → 1056, 39 → 40 suites).

Changed

  • Default Claude model → claude-sonnet-5 (was claude-sonnet-4-6). Sonnet 5 delivers near-Opus quality on coding/agentic work at Sonnet-tier cost. Applies to sync, review, and all CLI commands; override per-run with the claude-model action input or the --model CLI flag. To keep the previous model, pin the action to @v0.15.0 or set the model explicitly. This is the change action users will actually notice in this release.
  • Centralized the model default in src/models.ts (DEFAULT_CLAUDE_MODEL). All action and CLI defaults now resolve to this single constant, so future upgrades are a one-line change. The claude-model default in action.yml is kept in sync manually (YAML can't import the constant). Recognized-model validation patterns moved to src/models.ts and now include claude-sonnet-5 and claude-opus-4-8.
  • Thinking disabled tool-wide (DEFAULT_THINKING in src/models.ts). Sonnet 5 runs adaptive thinking by default, which would place a thinking block first in the response — breaking the content[0] text extraction in the translator and reviewer. This was measured rather than assumed: adaptive thinking self-regulates to ~zero on translation. A diagnostic confirmed the parameter engages (1607 → ~6000 output tokens on a reasoning prompt), but on a real translation it added only +24–32 tokens even at effort: high, and an Opus judge scored the variants within noise of each other. Enabling it is a no-op in cost, latency and quality, so off is a settled decision rather than a hold. See experiments/thinking-sonnet5/REPORT.md.
  • Centralized max_tokens budgets in src/models.ts (MAX_TOKENS), sized with headroom for Sonnet 5's tokenizer (~30% more tokens than Sonnet 4.6 for the same text): section translation 8192 → 16384, whole-document 32768 → 64000 (and the pre-flight size gate), review verdicts 1500 → 8192, analytical CLI calls (backward eval, forward triage, doc compare) 1024–4096 → 8192. max_tokens is a ceiling, not a charge, so larger caps only prevent truncation.
  • Cost figures in docs refreshed for Sonnet 5 pricing (standard $3/$15 per M tokens; ~13% lower under the introductory rate through 2026-08-31), reflecting the ~30% tokenizer increase.

Notes

  • Recommended for bulk seeds: --model claude-opus-4-8. Sonnet 5 remains the default for ongoing sync. On a 5-lecture French trial, Opus showed zero cross-lecture terminology drift where Sonnet 5 drifted on 5 terms, and was correct where Sonnet was not (mutable, not muable). Output lengths were near-identical, so the 1.66× is purely the price ratio — worth it once for a corpus a native speaker then reviews. See .dev/decisions/D-2026-07-14-opus-for-bulk-seed.md. Caveat: n=5 lectures, one language.
Commits
  • 5fb9c40 chore: release v0.16.0 (#80)
  • 40963cf fix(fr): apply French typography deterministically instead of asking the mode...
  • c835f7a Translation research round: thinking OFF, Opus for bulk seeds, glossary-revie...
  • 87d74f4 docs: publish/take-down passthrough for temporary experiment pages (#77)
  • 10609b9 feat: upgrade default model to claude-sonnet-5 (centralized model + token con...
  • 5c6b804 chore: adopt .dev/ project-notes convention (pilot) — seeded from the 2026-07...
  • d01ae0a feat(glossary): add French (fr) translation glossary (#68)
  • 17b422d chore: repo review fixes — lint, CI, doc currency, organization (#67)
  • 2d77939 fix: add permissions block, fix casing and version pin in rebase template
  • See full diff in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [QuantEcon/action-translation](https://github.com/quantecon/action-translation) from 0.15.0 to 0.16.0.
- [Release notes](https://github.com/quantecon/action-translation/releases)
- [Changelog](https://github.com/QuantEcon/action-translation/blob/main/CHANGELOG.md)
- [Commits](QuantEcon/action-translation@v0.15.0...v0.16.0)

---
updated-dependencies:
- dependency-name: QuantEcon/action-translation
  dependency-version: 0.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Jul 15, 2026
@netlify

netlify Bot commented Jul 15, 2026

Copy link
Copy Markdown

Deploy Preview for majestic-griffin-10b166 ready!

Name Link
🔨 Latest commit 559da34
🔍 Latest deploy log https://app.netlify.com/projects/majestic-griffin-10b166/deploys/6a5708d1b7764e0008212411
😎 Deploy Preview https://deploy-preview-131--majestic-griffin-10b166.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@dependabot @github

dependabot Bot commented on behalf of github Jul 15, 2026

Copy link
Copy Markdown
Contributor Author

Looks like QuantEcon/action-translation is up-to-date now, so this is no longer needed.

@dependabot dependabot Bot closed this Jul 15, 2026
@dependabot dependabot Bot deleted the dependabot/github_actions/QuantEcon/action-translation-0.16.0 branch July 15, 2026 11:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants