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:
@@ -33,6 +33,12 @@ export async function importVoid1({ sqlitePath, spaceId, dryRun = false }) {
|
||||
if (existing) { projIds.set(pr.id, existing); continue; }
|
||||
n.projects++; if (dryRun) continue;
|
||||
const created = await projects.create({ space_id: spaceId, slug: slugify(pr.name), name: pr.name || 'Project', description: pr.description || null, status: pr.status === 'archived' ? 'archived' : 'active' }, SYS);
|
||||
// Carry Void 1's Eithan research over (research_notes were not in the original mapping).
|
||||
if (pr.research_notes || pr.last_researched_at) {
|
||||
await pool.query(
|
||||
`UPDATE projects SET research_notes=$1, last_researched_at=$2, research_status=$3 WHERE id=$4`,
|
||||
[pr.research_notes || null, pr.last_researched_at ? new Date(pr.last_researched_at) : null, pr.research_notes ? 'done' : 'none', created.id]);
|
||||
}
|
||||
projIds.set(pr.id, created.id);
|
||||
await map.record('void1', `projects:${pr.id}`, 'project', created.id);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user