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
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ anchor: function App
created: 2026-10-15T03:38:04Z
norm: '1'
sig: 063d0f00fea02511
body_hash: cbba38a628c7d858
raw_hash: a8b8547e68eff2dc
vouched: 2026-10-22T21:25:00Z
body_hash: 83384f8adacc5fe0
raw_hash: 8ef778bdb202cc6b
vouched: 2026-10-22T21:26:46Z
lines: 235-824
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ anchor: function App
created: 2026-10-22T20:29:16Z
norm: '1'
sig: 063d0f00fea02511
body_hash: cbba38a628c7d858
raw_hash: a8b8547e68eff2dc
vouched: 2026-10-22T21:25:00Z
body_hash: 83384f8adacc5fe0
raw_hash: 8ef778bdb202cc6b
vouched: 2026-10-22T21:26:46Z
lines: 330-1237
---

Expand Down
29 changes: 18 additions & 11 deletions apps/app/src/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -564,18 +564,25 @@ export function App() {
if (rows) rows.push(next);
else team.set(channel.owner, [next]);
}
// A project known only through teammates' channels, such as after removing your copy, shows
// just their groups; an empty one of yours would read as a project you still have.
const yours = mine.length > 0 || !!opened?.some((checkout) => isLocal(checkout, value));
return [
{
id,
label: name,
rows: mine,
sort: "none",
collapsed: collapsed[id],
onNewSession: connected && (value.host === hello.host || value.repo)
? () => void create(undefined, undefined, value)
: undefined,
onRemove: removable(value) ? () => remove(value) : undefined,
},
...(yours
? [
{
id,
label: name,
rows: mine,
sort: "none",
collapsed: collapsed[id],
onNewSession: connected && (value.host === hello.host || value.repo)
? () => void create(undefined, undefined, value)
: undefined,
onRemove: removable(value) ? () => remove(value) : undefined,
} satisfies SessionSidebarGroup,
]
: []),
...[...team].map(([owner, rows]) => ({ owner, name: person(people, owner), rows }))
.sort((a, b) => a.name.localeCompare(b.name))
.map(({ owner, name: teammate, rows }): SessionSidebarGroup => {
Expand Down