Commit abecfa0
feat(commit-message): add prompt template and generator service
Turns collected git context into a commit message. Part 2 of 4 for AI
commit-message generation; the VS Code wiring that calls this follows.
The prompt exposes the context as separate placeholders - `${branch}`,
`${recentCommits}`, `${changedFiles}` and `${diff}` - rather than one opaque
blob, so a user editing the prompt in Settings -> Prompts can reorder or drop any
of them independently. The diff is fenced in explicit markers and labelled as
repository content, since it reaches the model verbatim and can contain
instruction-like text.
`generator.ts` is deliberately free of VS Code: it takes git context and provider
settings and returns cleaned text, locating no repository and writing nowhere, so
it can be exercised without the extension host. Its tests load no `vscode` mock
at all, which is what keeps that honest.
An empty response is now a failure rather than a success. A model that answers
with nothing, or with an empty code fence, previously produced an empty message
that a caller would happily write over whatever the user had already typed.
`config.ts` resolves which profile to generate with. The chosen profile is only a
preference: a saved id outlives the profile it points at, and a profile can be
deleted between reading the state and looking it up, so both cases fall back to
the active configuration instead of stopping generation.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent f182cd6 commit abecfa0
46 files changed
Lines changed: 562 additions & 0 deletions
File tree
- packages/types/src
- src
- core/webview
- __tests__
- i18n/locales
- ca
- de
- en
- es
- fr
- hi
- id
- it
- ja
- ko
- nl
- pl
- pt-BR
- ru
- tr
- vi
- zh-CN
- zh-TW
- services/commit-message
- __tests__
- webview-ui/src/i18n/locales
- ca
- de
- en
- es
- fr
- hi
- id
- it
- ja
- ko
- nl
- pl
- pt-BR
- ru
- tr
- vi
- zh-CN
- zh-TW
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
235 | 235 | | |
236 | 236 | | |
237 | 237 | | |
| 238 | + | |
238 | 239 | | |
239 | 240 | | |
240 | 241 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
304 | 304 | | |
305 | 305 | | |
306 | 306 | | |
| 307 | + | |
307 | 308 | | |
308 | 309 | | |
309 | 310 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2461 | 2461 | | |
2462 | 2462 | | |
2463 | 2463 | | |
| 2464 | + | |
2464 | 2465 | | |
2465 | 2466 | | |
2466 | 2467 | | |
| |||
2619 | 2620 | | |
2620 | 2621 | | |
2621 | 2622 | | |
| 2623 | + | |
2622 | 2624 | | |
2623 | 2625 | | |
2624 | 2626 | | |
| |||
2852 | 2854 | | |
2853 | 2855 | | |
2854 | 2856 | | |
| 2857 | + | |
2855 | 2858 | | |
2856 | 2859 | | |
2857 | 2860 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1226 | 1226 | | |
1227 | 1227 | | |
1228 | 1228 | | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
1229 | 1270 | | |
1230 | 1271 | | |
1231 | 1272 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
43 | 44 | | |
44 | 45 | | |
45 | 46 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments