Repository navigation
Create Berd projects with folders and starting instructions - #1136
Conversation
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 Two P2 findings remain in project reset and defaults validation; details inline.
wesbillman
left a comment
There was a problem hiding this comment.
🤖 Carl, an automated reviewer, commenting via Wes’s GitHub account.
Verdict: two blockers. The Court reviewed the PR diff against morganm/berd-navigation at 0c25d928. That diff is identical to the one at 1543fa53. The review was source-only: no native picker, browser, theme or enlarged-text runs.
Blocking
- CI is red because of this PR. The new read-frontier wait in
message-management.spec.mjsfails every repetition in every flake-check shard and in journeys 2/9 on both engines. The flake checks on0c25d928are failing the same way. - Clicking New chat in a project you are already in does not reset the mounted composer, so the chat can start in the wrong project.
Should fix: the accessible name for Field optional, and the locked retry state in NewProject (details inline).
Optional: the tilde grammar in the folder picker and lossy non-UTF-8 paths, plus focus restoration after pickers and failures.
Merge criteria
- Both blockers fixed, each with a regression test that fails before the fix.
- Hosted browser checks green.
- Design-owner sign-off on the global changes: 20px dialog padding (every
Dialog), Regular-weight field/choice/PreferenceRow labels, and 14pxSwitchlabels. Splitting them into their own PR is the alternative. Onlychannel-members-focus.spec.mjswas updated for the geometry change. - The pending checks the description already lists.
Non-blocking metadata: Co-authored-by: Carl <carl@agents.block.xyz> is not a verified managed-agent identity.
a9042b3 to
e7da66b
Compare
0c25d92 to
45188d9
Compare
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 One P2 recovery defect and two P3 findings; details inline.
45188d9 to
925580b
Compare
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 Re-reviewed the latest changes. The stale selectors are fixed, and the full me-polish journey passes in Chromium and WebKit. No remaining actionable findings. Required CI must pass before merge.
Add empty project creation, shared setup fields, native picker paths and shared form/modal refinements. Retrying an interrupted defaults save reconciles the saved record and reuses signed intent. Co-authored-by: Carl <carl@agents.block.xyz> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <carl@agents.block.xyz> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
…velope Keep pending project assignments frozen; reset correlated instructions only on an actual new-project transition. Reject the real community-scoped record before publishing organization. Co-authored-by: Carl <carl@agents.block.xyz> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
The failing trace changes Mark read to Mark unread during click actionability, then dispatches the opposite operation. Preserve both transitions with durable read evidence and exact action names. Co-authored-by: Carl <carl@agents.block.xyz> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Respond to project re-entry through existing view-state notifications, make locked retry states explicit, preserve picker focus and reject lossy folder paths. Correct the durable read boundary checked by the message-management journey. Co-authored-by: OpenAI <noreply@openai.com> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
…s envelope Cover re-entering a project while a start loads its defaults; the receipt is now frozen before the first asynchronous step, so the submitted project and retry stay consistent. Validate section defaults against the real community envelope inside sectionTemplate so callers no longer repeat the check. Open draft settings through the direct Session settings button after the rebase. Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com> Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Give instructions and folders the same section spacing as name and lifetime, and update the session settings journey for the instructions label and the folder controls. Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com> Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com> Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1b01fa3 to
21a0efe
Compare
What this does
Adds New project beneath New chat in Solo. A project can start empty, with optional instructions and multiple context folders supplied in the same dialog. New chats copy these defaults through the existing project-template path; moving an existing chat preserves its own instructions.
Folder attachments appear as separate cards in a bounded list. Native folder pickers start at the current worktree location and display home-relative paths. Selecting a folder does not change an agent’s working directory or create a worktree: the existing worktree switch remains instructions copied into chats.
Shared design changes
Morgan confirmed the app-wide lighter form and preference labels and tighter outer dialog padding on October 14. Labels use regular-weight 14px text; dialog padding changes from 24px to 20px at the default breakpoint. The spacing between fields and between labels and inputs is unchanged. Shared optional labels, card-list and chevron-free picker treatments replace local variants.
Saving and recovery
Project organization and defaults remain separate existing records. Defaults are validated with their actual community envelope before publication. Submitted values stay locked and visibly disabled; a failed attempt offers Retry with its retained values, and conflicting saved defaults offer Close rather than an impossible retry. An uncertain save reconciles existing defaults and reuses its signed intent. No cross-record transaction is claimed.
Re-entering a project’s New chat updates an already-mounted composer through the existing draft notifications, clearing changed project instructions while preserving pending starts. No new draft store, navigation reset counter, or data-loading subsystem is added. Folder picker completion restores focus to an available control; native folder paths no longer reinterpret
~nameas home or silently replace unsupported filename bytes.Review and validation
Rebased onto main at
0201b54c4, including the landed navigation layer #1132 and newer navigation lifetime fix. Local fixes are at45188d96c.45188d96cwith no bypass (two test workers), including TypeScript/related Vitest, design guards and workspace Clippy.activity:alphacatch-up marker. The wait now observes the correct durable boundary and retains exact Mark unread/Mark read actions. Main already fixes the recovery-heading and Buzz-link preview failures.Still pending: fresh hosted CI, rendered light/dark/narrow/wide/enlarged-text and keyboard/pointer acceptance, native picker/full-app acceptance, human testing, and reviewer approval. The PR remains draft until those gates are satisfied; agent and human acceptance are not yet complete.