+
+ {isScratchDraft ? (
+ <>What should we work on?>
+ ) : hasResolvedProject ? (
+ <>What should we build in {projectSelector}?>
+ ) : canChooseProject ? (
+ <>{projectSelector} to start>
+ ) : (
+ <>Add a project to start>
+ )}
+
+ {/* Reserved whenever threads can skip a project, so the heading does not
+ move. Without a project, the picker moves here to choose one. */}
+ {scratchWorkspaceRoot === null ? null : (
+
+ {isScratchDraft ? projectSelector : orStartWithoutProject}
+
)}
-
+
);
}
diff --git a/apps/web/src/components/settings/KeybindingsSettings.logic.test.ts b/apps/web/src/components/settings/KeybindingsSettings.logic.test.ts
index 7729ce183754..791ebccfa932 100644
--- a/apps/web/src/components/settings/KeybindingsSettings.logic.test.ts
+++ b/apps/web/src/components/settings/KeybindingsSettings.logic.test.ts
@@ -49,13 +49,13 @@ describe("KeybindingsSettings.logic", () => {
it("orders Usage bindings and command choices like the page", () => {
const expected = [
"usage.cost",
- "usage.open",
"usage.tokens",
"usage.limits",
"usage.period.day",
"usage.period.week",
"usage.period.month",
"usage.period.quarter",
+ "usage.open",
];
const bindings = DEFAULT_RESOLVED_KEYBINDINGS.toReversed();
expect(buildKeybindingRows(bindings, "usage").map((row) => row.command)).toEqual(expected);
diff --git a/apps/web/src/components/settings/KeybindingsSettings.logic.ts b/apps/web/src/components/settings/KeybindingsSettings.logic.ts
index a06628e5d505..a1f445b5db82 100644
--- a/apps/web/src/components/settings/KeybindingsSettings.logic.ts
+++ b/apps/web/src/components/settings/KeybindingsSettings.logic.ts
@@ -19,10 +19,24 @@ const usageCommandOrder = new Map