Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
686d927
Bug analysis: per-file BUG-ANALYSIS.md docs (first completed batches)
claude Aug 24, 2026
24f3f52
[+1,-1] Markdown tables: accept every valid GFM separator cell, not o…
claude Aug 25, 2026
b0516d3
[+13,-3] Resume command: quote the workspace path
claude Aug 25, 2026
397c77f
[+7,-0] Add device: reject scheme-less pastes instead of storing a nu…
claude Aug 25, 2026
a82d1d3
[+8,-3] Device hop: cap the carried draft on its encoded length
claude Aug 25, 2026
df2f8f6
[+7,-0] AgentView: reset per-agent latches when the selection changes
claude Aug 25, 2026
7f767a0
[+6,-0] Composer: the queued-message note resets on agent switch and …
claude Aug 25, 2026
d4969a9
[+12,-2] Handoff summary: a merged branch says merged, not "no changes"
claude Aug 25, 2026
5b66128
[+3,-0] Handoff arm: drop the optimistic pick when the agent changes
claude Aug 25, 2026
099fe0d
[+6,-3] Sidebar: exactly one destination highlighted on ticket pages,…
claude Aug 25, 2026
72fb9fd
[+5,-7] Choice panel: a delivered pick counts as delivered
claude Aug 25, 2026
36bf783
[+22,-4] CI watch: an unreadable status is not an absence of checks
claude Aug 25, 2026
eecb551
[+16,-1] CI watch: a PR whose state is still being read is not an ope…
claude Aug 25, 2026
b376dd9
[+14,-4] Closing keywords: defuse the colon form GitHub also accepts
claude Aug 25, 2026
d0cc7ee
[+6,-1] Unattended agents keep their messages, not just their Stop
claude Aug 25, 2026
4bf9c94
[+22,-0] Auto PM: a click that names a routine leaves the sweep's cal…
claude Aug 25, 2026
0ad6811
[+22,-12] Tickets: a capitalised topic badge filters by its topic
claude Aug 25, 2026
11d79ca
[+6,-0] Claude driver: a stdout line of `null` is noise, not a crash
claude Aug 25, 2026
9602805
[+6,-0] Codex driver: a stdout line of `null` is noise, not a crash
claude Aug 25, 2026
c03f938
[+34,-1] RPC mount: parse the request path against a fixed base
claude Aug 25, 2026
a3bd13d
[+4,-4] Archived meta patches go through the atomic write like every …
claude Aug 25, 2026
c44c3ef
[+1,-1] Landing page: 'critcal' -> 'critical'
claude Aug 25, 2026
935e6e2
[+11,-2] Open PR: decide against the PR that last saw the branch
claude Aug 25, 2026
63c6631
[+3,-2] Prompt codegen: a prompt's sibling SPEC.md is documentation, …
claude Aug 25, 2026
21f8584
[+15,-6] Interventions: a parked agent is identified by which agent i…
claude Aug 25, 2026
156f000
[+27,-1] File diff: a content line that looks like a file header stil…
claude Aug 25, 2026
41bc16e
[+18,-2] File diff: an untracked file's count is its size, not its pr…
claude Aug 25, 2026
667bebd
[+5,-1] File read: the .git guard matches the case the filesystem does
claude Aug 25, 2026
d359456
Bug analysis: per-file BUG-ANALYSIS.md docs for the rest of the tree
claude Aug 25, 2026
9cffdd2
Bug analysis: each doc becomes the date its file was last analyzed
claude Aug 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions packages/chrome-extension/background.BUG-ANALYSIS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
1 change: 1 addition & 0 deletions packages/chrome-extension/check.BUG-ANALYSIS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
1 change: 1 addition & 0 deletions packages/chrome-extension/content.BUG-ANALYSIS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
1 change: 1 addition & 0 deletions packages/chrome-extension/options.BUG-ANALYSIS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
1 change: 1 addition & 0 deletions packages/framework/dashboard/App.BUG-ANALYSIS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ describe('AgentActionsMenu (#toolbar-menu)', () => {
fireEvent.click(screen.getByText('Copy resume command'))
await waitFor(() =>
expect(writeText).toHaveBeenCalledWith(
'mkdir -p /repo/.the-framework/worktrees/run-1 && cd /repo/.the-framework/worktrees/run-1 && claude --resume 45015d11-755b-423c-ae71-8dbfd54f7cce',
"mkdir -p '/repo/.the-framework/worktrees/run-1' && cd '/repo/.the-framework/worktrees/run-1' && claude --resume 45015d11-755b-423c-ae71-8dbfd54f7cce",
),
)
// And it says so, since a click that only fills the clipboard shows nothing otherwise.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
6 changes: 6 additions & 0 deletions packages/framework/dashboard/components/AgentComposer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,13 @@ export function AgentComposer({
const stopping = stopBusy || (stopRequested && live)
// The last message that went through: a queued control entry is invisible until the agent
// drains it between turns, so without this the send looked like nothing happened (#948).
// Reset like the latches above: the note is about THIS agent's live session, so it must not
// survive an agent switch or outlive the session it was queued into.
const [queued, setQueued] = useState<string | null>(null)
useEffect(() => setQueued(null), [agentId])
useEffect(() => {
if (!live) setQueued(null)
}, [live])
const resumable = !live && sessionId !== undefined

const send = async (text: string, _kind: 'build' | 'prompt', opts: { newAgent: boolean }): Promise<void> => {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
9 changes: 9 additions & 0 deletions packages/framework/dashboard/components/AgentHandoff.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,15 @@ describe('run handoff (#799)', () => {
expect(screen.getByText('Nothing committed — no PR to open.')).toBeTruthy()
})

test('a merged branch says merged, not "no changes" — its commits are all on the base', async () => {
// Merged implies empty: `base..branch` lists nothing once every commit landed. The two facts
// must not read the same, since one means work shipped and the other means there was none.
onAgentHandoff.mockResolvedValue({ ...worked, commits: [], files: [], insertions: 0, deletions: 0, empty: true, pushed: true, merged: true })
render(<Harness />)
await waitFor(() => expect(screen.getByText('merged')).toBeTruthy())
expect(screen.queryByText('no changes')).toBeNull()
})

test('an empty branch with work waiting in the tree names the work, never a button (#1173)', async () => {
onAgentHandoff.mockResolvedValue({
...worked,
Expand Down
8 changes: 6 additions & 2 deletions packages/framework/dashboard/components/AgentHandoff.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ export function HandoffSummary({ handoff }: { handoff: AgentHandoff | null }) {
// A branch that is gone and a branch that was never pushed are different facts, and the summary
// is only useful if it tells them apart.
if (!handoff.exists) return <span className="text-muted-foreground">branch gone</span>
if (handoff.empty) return <span className="text-muted-foreground">no changes</span>
// A merged branch reads as empty too — its commits are all on the base, so `base..branch` lists
// nothing — but "merged" and "no changes" are opposite verdicts, and only one of them is true.
if (handoff.empty) return <span className="text-muted-foreground">{handoff.merged ? 'merged' : 'no changes'}</span>
const commits = `${handoff.commits.length} commit${handoff.commits.length === 1 ? '' : 's'}`
const files = `${handoff.files.length} file${handoff.files.length === 1 ? '' : 's'}`
return (
Expand All @@ -48,7 +50,6 @@ export function HandoffSummary({ handoff }: { handoff: AgentHandoff | null }) {
{/* Whether the work is on the remote yet is the first handoff question — say it. The PR
itself is not repeated here: the bar already links it. */}
{handoff.pushed && !handoff.pr && <span>· pushed</span>}
{handoff.merged && <span>· merged</span>}
</span>
)
}
Expand Down Expand Up @@ -85,6 +86,9 @@ export function HandoffArm({
useEffect(() => {
if (pending && pending === armed) setPending(null)
}, [pending, armed])
// Mounted un-keyed across agent switches: a pick still waiting for agent A's event echo must
// not paint agent B's box, where `pending === armed` may never come true to clear it.
useEffect(() => setPending(null), [agentId])

const set = (next: HandoffLevel): void => {
setPending(next)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
9 changes: 6 additions & 3 deletions packages/framework/dashboard/components/AgentHistory.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,9 @@ export function AgentHistory({

// New is the active view when a project is open on its launcher (its "New" / Start-a-session
// screen: a project selected, no run picked, not following a live one). On the Overview that role
// belongs to the Overview item instead, so the two are never active at once.
const atProjectLauncher = projectId !== null && selectedAgentId === null && !followLive
// belongs to the Overview item instead, so the two are never active at once — and a ticket page
// routes with a project but is the Tickets view, not the launcher.
const atProjectLauncher = projectId !== null && selectedAgentId === null && !followLive && !ticketsActive

const hasRecents = rows.length > 0 || showOptimistic

Expand Down Expand Up @@ -600,7 +601,9 @@ function AgentHistoryRow({
it used to pulse identically whether it was mid-edit or had been idle for an hour. */}
{/* The publishing dot pulses green like the session pill's (#1431), so the two surfaces
describe the same window the same way. */}
{status === 'running' && (
{/* `parked` alone covers the cloud-side wait: its local status is done, but the SPEC's
"waiting" always comes with the still dot, wherever the session is parked. */}
{(status === 'running' || parked) && (
<span className={cn('inline-block h-2 w-2 shrink-0 rounded-full', parked ? 'bg-muted-foreground' : 'animate-pulse bg-primary')} />
)}
{publishingNow && <span className="inline-block h-2 w-2 shrink-0 animate-pulse rounded-full bg-success" />}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
7 changes: 7 additions & 0 deletions packages/framework/dashboard/components/AgentView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,13 @@ export function AgentView({
const retained = useLoaded<string[]>(!live && agentId ? () => onRetainedWorktrees(projectId) : null, [], [projectId, agentId, live])
const [removed, setRemoved] = useState(false)
const onWorktreeRemoved = useCallback(() => setRemoved(true), [])
// The view is mounted un-keyed, so switching agents only swaps props: per-agent latches must
// reset by hand or the previous agent's Remove press hides this one's offer (and a stale
// archiveBehind can swallow the catch-up re-read on an equal-length collision).
useEffect(() => {
setRemoved(false)
setArchiveBehind(0)
}, [agentId])
const hasWorktree = !live && !removed && agentId !== null && agentId !== undefined && retained.includes(agentId)

// Whether the agent is still working, which is not whether the agent's process is up (#1173).
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
8 changes: 5 additions & 3 deletions packages/framework/dashboard/components/ChoicePanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,11 @@ export function ChoicePanel({

const post = (pick: string | string[], by: 'user' | 'autopilot' = 'user') => {
const deliver = send ?? ((p: string | string[], b: 'user' | 'autopilot') => sendChoice(projectId, choice.id, p, b, agentId ?? undefined))
void run(() => deliver(pick, by), 'Could not send your choice — try again.').then(
result => {
if (result !== undefined) {
// Both deliverers resolve void and run() reports failure as undefined, so map a delivered
// pick to a value — otherwise success is indistinguishable from a failed post.
void run(() => deliver(pick, by).then(() => true as const), 'Could not send your choice — try again.').then(
delivered => {
if (delivered) {
setSent(true)
onAnswered?.(pick)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
2 changes: 1 addition & 1 deletion packages/framework/dashboard/components/Markdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ function tableCells(row: string): string[] {

/** The GFM header separator (`| --- | :-: |`), which is what makes pipe rows a table. */
function isTableSeparator(row: string): boolean {
return tableCells(row).length > 0 && tableCells(row).every(c => /^:?-{3,}:?$/.test(c))
return tableCells(row).length > 0 && tableCells(row).every(c => /^:?-+:?$/.test(c))
}

function renderBlocks(text: string, compact = false): ReactNode[] {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,6 @@ describe('OpenQuestions jump-nav (#1455 bonus 1)', () => {

describe('OpenQuestions answered collapse (#1455 bonus 2)', () => {
test('answering collapses the card to a ✓ line in place, and the header counts only open ones', async () => {
// A defined result is the ChoicePanel's "posted and accepted" condition, which is what
// fires onAnswered — the default undefined models a failed post and must not collapse.
sendChoice.mockResolvedValue(null)
onOpenQuestions.mockResolvedValue([question()])
render(<OpenQuestions onOpenAgent={vi.fn()} />)
await waitFor(() => expect(screen.getByText('Work on it')).toBeTruthy())
Expand All @@ -139,7 +136,6 @@ describe('OpenQuestions answered collapse (#1455 bonus 2)', () => {
})

test('expanding an answered card shows the options with the pick marked, and still opens the session', async () => {
sendChoice.mockResolvedValue(null)
onOpenQuestions.mockResolvedValue([question()])
const onOpenAgent = vi.fn()
render(<OpenQuestions onOpenAgent={onOpenAgent} />)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Last analyzed: [25 August 2026](https://github.com/framework/the-framework/pull/1698)
Loading
Loading