mirror of
https://github.com/block/buzz.git
synced 2026-11-13 04:41:12 +00:00
feat(desktop): refine repository-aware project workspaces (#6003)
## Summary - Makes Projects repository-aware across browsing, branch and tag selection, local and remote source management, work items, commits, and contextual repository actions. - Refines project details into consistent single-column reading surfaces with a resizable, section-aware context pod, while keeping project conversations available in the attached chat panel. - Adds persistent sidebar project navigation, direct entity links, repository discussion channels, contributor identity matching, and consistent loading and activity presentation. - Keeps branch-specific controls on code-oriented sections while Tasks, Reviews, and Channels remain repository-scoped, reducing misleading context and actions. Replacement for #5981 with an identical final tree flattened into one signed-off commit because the required DCO check suite remained stalled. ### Related issue N/A ### Testing - [x] Desktop pre-push checks, TypeScript typecheck, and unit tests - [x] E2E production build with `pnpm build:e2e` - [x] Focused Playwright smoke coverage for project workspace, task, review, commit, sidebar, and contextual-panel behavior - [ ] Attach final before/after screenshots after design review --------- Signed-off-by: Thomas Petersen <thomasp@squareup.com> Signed-off-by: Wintermute <165f0c871dd2586bb18b6aa109eeaf57bb2132ff4d27b10120f4368a0f627022@buzz.block.builderlab.xyz> Co-authored-by: Wintermute <165f0c871dd2586bb18b6aa109eeaf57bb2132ff4d27b10120f4368a0f627022@buzz.block.builderlab.xyz>
This commit is contained in:
@@ -68,6 +68,8 @@ export type MarkdownParseInputs = {
|
||||
components: Components;
|
||||
content: string;
|
||||
customEmoji?: CustomEmoji[];
|
||||
/** Omit or true for chat-style `<br>` on every newline. */
|
||||
hardLineBreaks?: boolean;
|
||||
/** Inserts the runtime-provided leading content marker during parsing. */
|
||||
leadingInlineContent?: boolean;
|
||||
mentionNames?: string[];
|
||||
@@ -104,7 +106,7 @@ function buildMarkdownElement(input: MarkdownParseInputs): React.ReactElement {
|
||||
components: input.components,
|
||||
remarkPlugins: [
|
||||
remarkGfm,
|
||||
remarkBreaks,
|
||||
...(input.hardLineBreaks === false ? [] : [remarkBreaks]),
|
||||
remarkSpoilers,
|
||||
remarkChannelDeepLinks,
|
||||
remarkMessageLinks,
|
||||
@@ -140,6 +142,7 @@ export function renderCachedMarkdown(
|
||||
// distinct input tuples. Content is last and needs no prefix: everything
|
||||
// before it is self-delimiting.
|
||||
const key =
|
||||
segment(input.hardLineBreaks === false ? "soft" : "hard") +
|
||||
segment(input.variant) +
|
||||
segment(input.leadingInlineContent ? "leading" : "") +
|
||||
listSegment(input.mentionNames) +
|
||||
|
||||
Reference in New Issue
Block a user