feat(ui): project details panel + compact/responsive cards; rename Sentinel→Yerin (red); migrate research_notes
- Project card expands to show description + status + dates (was only the research stub) - Cards compacted + responsive (actions wrap on narrow) - Sentinel renamed Yerin everywhere (#/yerin, red 'Sage of the Endless Sword' theme + red sidebar dot) - void1 importer now carries research_notes/last_researched_at (was dropped) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -12,10 +12,10 @@ const YERIN_LABELS = {
|
||||
export async function render(main) {
|
||||
const log = el('div', { class: 'rail-log sentinel-log' });
|
||||
const input = el('textarea', { class: 'rail-input', rows: 1, placeholder: 'Ask Yerin about the Void’s security…' });
|
||||
mount(main,
|
||||
el('h1', { class: 'view-h1' }, '◆ Sentinel — Yerin'),
|
||||
el('p', { class: 'view-sub' }, 'Read-only security & observability. She watches, reports, and warns — she never acts.'),
|
||||
el('div', { class: 'sentinel-chat' }, log, el('div', { class: 'rail-inputwrap' }, input)));
|
||||
mount(main, el('div', { class: 'yerin-view' },
|
||||
el('h1', { class: 'view-h1' }, '◆ Yerin'),
|
||||
el('p', { class: 'view-sub' }, 'Sage of the Endless Sword — read-only security & observability. She watches, reports, and warns; she never acts.'),
|
||||
el('div', { class: 'sentinel-chat' }, log, el('div', { class: 'rail-inputwrap' }, input))));
|
||||
const chat = wireAgentChat({
|
||||
logEl: log, inputEl: input,
|
||||
historyUrl: '/api/security/yerin', turnUrl: '/api/security/yerin/turn',
|
||||
|
||||
Reference in New Issue
Block a user