| β¦ | β¦ | @@ -535,12 +590,10 @@ const make = Effect.gen(function* () { | |
| 541 | 595 | } | |
| 542 | - | ||
| 543 | - | yield* writeConfigAtomically([...customConfig, ...defaultsToAppend]); | |
| 596 | + | if (pendingLateDefaults.length > 0) yield* recordAppliedMigrations; | |
π‘ Medium src/keybindings.ts:596
When the config is already at MAX_KEYBINDINGS_COUNT, defaultsToAppend omits mod+enter, but recordAppliedMigrations still marks every pending migration as applied. A later removal creates capacity, yet the migration is skipped permanently, so composer.sendBackground never receives mod+enter. Record only migrations whose rules were actually appended.
π Reply "fix it for me" or copy this AI Prompt for your agent:
| 1 | In file @apps/server/src/keybindings.ts around line 596: |
| 2 | |
| 3 | When the config is already at `MAX_KEYBINDINGS_COUNT`, `defaultsToAppend` omits `mod+enter`, but `recordAppliedMigrations` still marks every pending migration as applied. A later removal creates capacity, yet the migration is skipped permanently, so `composer.sendBackground` never receives `mod+enter`. Record only migrations whose rules were actually appended. |
Note
π€ Claude Opus 5.5 responding on behalf of Theo
Fixed in dbec31ef42. Startup now records only late defaults that were added or not needed. A late default skipped at MAX_KEYBINDINGS_COUNT stays pending and is added on a later start once there is room. New test keeps a late default pending while the config is full covers it and fails without the fix.