// Issue detail — human intent (gitea) on the left, machine-derived (pm-state) on the right function IssueScreen({ issue, onBack, onOpenIssue }) { const DS = window.CommiTeaDesignSystem_20e63b; const { Card, Tag, Badge, Button, Icon } = DS; const det = window.CT_DATA.issueDetail[issue.id] || { state: 'triage', assignee: 'Stephen', milestone: 'Beta', body: '', comments: [], lifecycle: [ { stage: 'Diagnosis', event: 'issue opened', when: 'Feb 4 · 10:20', icon: 'circle-dot', done: true }, { stage: 'Triage', event: 'labeled · milestoned Beta', when: 'Feb 5 · 09:12', icon: 'tag', done: true }, { stage: 'Work start', event: 'first branch or commit ref', when: 'pending', icon: 'git-commit-horizontal', done: false }, { stage: 'Deploy', event: 'PR merged', when: 'pending', icon: 'git-merge', done: false }, { stage: 'Complete', event: 'issue closed', when: 'pending', icon: 'circle-check', done: false }, ], forecast: { p80: 'starts wk of Feb 16', note: 'queue position from scheduler' }, blocks: [], blockedBy: [], note: null, }; const stateBadge = { steeping: { tone: 'warn', label: `steeping${issue.days || issue.steeping ? ' ' + (issue.days || issue.steeping) : ''}` }, triage: { tone: 'neutral', label: 'triage' }, review: { tone: 'info', label: 'in review' }, done: { tone: 'ok', label: 'done' }, }[det.state] || { tone: 'neutral', label: det.state }; return (
#{issue.id} · stephen/commitea
{det.body}
) : (No description was written. I have opinions about that, but I'll keep them warm.
)}{c.text}
{det.note}
) : null}Lives in pm-state. Your repo never sees any of it.