镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Create Berd projects with folders and starting instructions - #1136

Merged
morgmart merged 8 commits into
mainfrom
morganm/berd-projects
Oct 15, 2026
Merged

morgmart merged 8 commits into
mainfrom
morganm/berd-projects

Conversation

@morgmart

@morgmart morgmart commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

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 ~name as 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 at 45188d96c.

  • Mandatory pre-commit and pre-push hooks passed for 45188d96c with no bypass (two test workers), including TypeScript/related Vitest, design guards and workspace Clippy.
  • Before the final non-overlapping main rebase: 126 focused feature/preference tests and 164 design-system tests passed, with two workers. TypeScript, design type checks, design static checks and design build passed. Two native path-helper tests passed on macOS through pinned Rust; this is not a full native build or Windows execution.
  • The mounted-reset, disabled retry, accessibility and picker-focus regressions were observed failing before their fixes. The mounted-reset tests now send and verify the resulting project and instructions, including recovery of a pending start.
  • Independent architecture, UI and runtime source reviews ran. The existing save order was retained: changing it would introduce a different partial-save outcome without fixing a demonstrated defect. Global label/padding approval is recorded above; source review does not replace rendered acceptance.
  • The previous CI read-frontier failure was traced to observing the whole-channel marker instead of the automatic activity:alpha catch-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.
  • Browser cases added/removed: 0/0. Existing message-management coverage retains its real portal, pointer/focus and durable-read integration; channel-member coverage retains its rendered alignment/focus contract under the approved padding change. Browser checks have not been rerun locally in this session.

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.

@morgmart
morgmart marked this pull request as ready for review October 14, 2026 22:32
@morgmart
morgmart requested a review from a team as a October 14, 2026 22:32

@kalvinnchau kalvinnchau left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Two P2 findings remain in project reset and defaults validation; details inline.

Comment thread src/features/sessions/NewProject.tsx Resolved

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 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

  1. CI is red because of this PR. The new read-frontier wait in message-management.spec.mjs fails every repetition in every flake-check shard and in journeys 2/9 on both engines. The flake checks on 0c25d928 are failing the same way.
  2. 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 14px Switch labels. Splitting them into their own PR is the alternative. Only channel-members-focus.spec.mjs was 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.

Comment thread src/bundled/me/MeSidebar.tsx Resolved
Comment thread src/shared/design-system/ui/Field.tsx Resolved
Comment thread src/features/sessions/NewProject.tsx Resolved
Comment thread src-tauri/src/lib.rs Resolved
@morgmart
morgmart force-pushed the morganm/berd-navigation branch 3 times, most recently from a9042b3 to e7da66b Compare October 15, 2026 02:56
Base automatically changed from morganm/berd-navigation to main October 15, 2026 03:55
@morgmart
morgmart marked this pull request as draft October 15, 2026 04:31
@morgmart
morgmart force-pushed the morganm/berd-projects branch from 0c25d92 to 45188d9 Compare October 15, 2026 04:39
@morgmart
morgmart marked this pull request as ready for review October 15, 2026 05:29

@kalvinnchau kalvinnchau left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 One P2 recovery defect and two P3 findings; details inline.

Comment thread src/features/sessions/workspace.ts Resolved
@morgmart
morgmart force-pushed the morganm/berd-projects branch from 45188d9 to 925580b Compare October 15, 2026 16:36

@kalvinnchau kalvinnchau left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 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.

morgmart and others added 8 commits October 15, 2026 13:16
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>
@morgmart
morgmart force-pushed the morganm/berd-projects branch from 1b01fa3 to 21a0efe Compare October 15, 2026 20:25
@morgmart
morgmart merged commit 142f006 into main Oct 15, 2026
35 checks passed
@morgmart
morgmart deleted the morganm/berd-projects branch October 15, 2026 20:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants