Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion apps/web/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -510,6 +510,21 @@ export const wording = {
review_artifact: (document?: string) =>
document ? `Asked for a review · ${document}` : "Asked for a review",
} as Record<string, (subject?: string) => string>,
/** A hand-off the hub refused, by tool name: who it did not start. */
handoffRefused: {
deploy_writer: (document?: string) =>
document
? `Could not start the writer · ${document}`
: "Could not start the writer",
design_app: () => "Could not start the designer",
deploy_coder: () => "Could not start the app builder",
deploy_presenter: () => "Could not start the presenter",
instruct_coder: () => "Could not send the app builder a change",
review_artifact: (document?: string) =>
document
? `Could not ask for a review · ${document}`
: "Could not ask for a review",
} as Record<string, (subject?: string) => string>,
/** What a tool call is doing, by tool name, given its one identifying argument. */
tool: {
read_file: (subject?: string) =>
Expand Down Expand Up @@ -708,6 +723,8 @@ export const wording = {
timeout: "Not started — the go-ahead ran out of time",
expired: "Not started — the go-ahead expired",
},
/** The hub refused the hand-off, so nothing started. */
refused: "Not started",
starting: "Starting…",
/** At work before its run reports a step of its own. */
working: (subject: string) => `Working on ${subject}`,
Expand Down Expand Up @@ -979,7 +996,7 @@ export const wording = {
coordinatorNotStarted: "The coordinator for this project did not start.",
projectNotOpened: "The project could not be opened.",
projectLoading: "Loading this project…",
projectTooShort: "At least ten characters to start a project.",
projectEmpty: "Describe what you want built to start a project.",
stepFailed: "That step could not finish.",
},
/** The coordinator's questions as a card the person answers in the conversation. */
Expand Down
4 changes: 2 additions & 2 deletions apps/web/src/pages/home-view.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

export const HOME_COMPOSER_PLACEHOLDER = "Describe the thing you want built…";

/** Ten characters is the create gate. */
/** Any idea starts a project; only an empty box does not. */
export function canStartProject(problem: string): boolean {
return problem.trim().length >= 10;
return problem.trim().length > 0;
}
2 changes: 1 addition & 1 deletion apps/web/src/pages/projects.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ export function Projects({
if (busy !== null) return;
if (shell.answers(problem)) return setProblem("");
if (!canStartProject(problem)) {
toast.error(wording.message.projectTooShort);
toast.error(wording.message.projectEmpty);
return;
}
setBusy("start");
Expand Down
1 change: 1 addition & 0 deletions apps/web/src/pages/workspace/work-unit-view.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ function WorkLine({
return text.steps(text.done[dispatch.role](subject), steps);
case "finished":
case "failed":
if (dispatch.refused !== undefined) return text.refused;
return text.steps(text.ended(subject), steps);
}
}
Expand Down
6 changes: 5 additions & 1 deletion apps/web/src/pages/workspace/work-unit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,11 @@ export function workUnitMessage(
!dispatch.pending &&
status.state !== "waiting" &&
status.state !== "declined";
const handoff = wording.activity.handoff[dispatch.tool];
const handoff = (
dispatch.refused === undefined
? wording.activity.handoff
: wording.activity.handoffRefused
)[dispatch.tool];
const parts: ConversationPart[] = [
{
kind: "tool-trace",
Expand Down
8 changes: 4 additions & 4 deletions docs/USER_MANUAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,8 @@ tips**) and your **Account**, with **Sign out**.

From **New project** in the sidebar you see "What do you want to build today?"

1. Type your idea in the box that says "Describe the thing you want built…". It
needs at least ten characters. You can also dictate with the microphone.
1. Type your idea in the box that says "Describe the thing you want built…".
You can also dictate with the microphone.
2. The **Model profile** picker in the box shows the profile the project will
use. Change it here if you want a different one.
3. Send it. You see "Starting your project…" and then the project opens.
Expand Down Expand Up @@ -379,8 +379,8 @@ provider's status in **Settings → Providers**, then send your message again.
whoever runs it to restart it.
- **"Builder is responding slowly"**: everything waits on the server. If it
stays slow, restart it.
- **"At least ten characters to start a project."**: describe the idea in a
little more detail.
- **"Describe what you want built to start a project."**: the box is empty;
type your idea first.
- **"No model provider connected"**: choose **Connect a model provider**.
- **"The provider refused this key."**: check the key and test again.
- **"The provider did not answer with a model list."**: check the **Base URL**
Expand Down