Thanks for the report — triage agrees this is a real quality bug in the dedicated commit-message path, not a settings-UI no-op.
What the setting actually does
Repository conventions is the default (repo_conventions). The named flag inferRepositoryConventions is set on that policy and never read by the prompt builders, so the title is accurate for the flag. The mode itself is not empty: resolveStylePolicy in apps/server/src/git/GitManager.ts still:
- samples up to 20 recent non-merge commit subjects
- reads root
AGENTS.md(already shipped in #8804; present on Desktop 0.0.40) - reads root
CLAUDE.mdonly when the writer is Claude - appends that blob as “Additional instructions”
It does not read README.md, nested AGENTS.md, or CONTRIBUTING.md. A root AGENTS.md over 20KB is dropped with no warning.
Why documented conventions can still lose
The commit prompt in TextGenerationPrompts.ts always requires an imperative, ≤72-character, no-trailing-period subject and an empty-or-bullet body. sanitizeCommitMessage then truncates the subject to 72 characters. Recent subjects are listed before AGENTS.md, so history can override the docs. That matches the workaround (agent commit works, because the agent gets AGENTS.md as first-class instructions).
Settings copy still says the mode “matches recent change descriptions and change request titles.” Docs say it uses “the project's instructions and recent commit subjects.” Both undersell / misstate the current behavior.
Not a duplicate / not closed by #7650
- #7650 only enriches git-history examples (subjects + bodies). It does not make
AGENTS.md/README.mdwin and should notClosesthis issue. - #1181 / #656 are older Conventional Commits feature asks, not this bug.
Suggested fix
In GitManager + TextGenerationPrompts: use or drop the dead flag; when repo conventions are on, don’t let the hard 72-char/bullet rules override repo style; prefer commit-convention text from AGENTS.md over raw history; and decide explicitly whether README.md should be sampled (if not, say so in the UI).
Workaround: set the style to Custom instructions, or let the coding agent create the commit.
A single expected-vs-actual commit message (and whether the conventions live in root AGENTS.md vs README.md) would help, but is not required to start the fix.