feat(cli): default focus to logs panel and tighten splash + log row layout
- Default activeSection is now "logs" so the live log feed is what the user sees first when running `fn`. - Splash drops the ASCII circle brand mark; only the FUSION block-letter word and tagline remain. The splash always pins to the top-left rather than centering, so it doesn't shift on resize. Compact terminals show plain "FUSION" text instead of block letters. - Log rows render as a single Text with inline-colored spans (marker, timestamp, level, prefix, message). Prefix sits in a fixed 14-char slot so the message column aligns across rows, and the selection highlight now spans the full row width. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -60,23 +60,17 @@ afterEach(() => {
|
||||
});
|
||||
|
||||
describe("DashboardApp smoke", () => {
|
||||
it("renders the splash brand mark and tagline before systemInfo arrives", () => {
|
||||
it("renders the splash logo and tagline before systemInfo arrives", () => {
|
||||
const controller = newController();
|
||||
const { lastFrame, unmount } = render(<DashboardApp controller={controller} />);
|
||||
const frame = lastFrame() ?? "";
|
||||
expect(frame).toContain("╭─────╮");
|
||||
// Block-letter "F" opens with this run on wide terminals; on narrow
|
||||
// terminals the compact layout shows plain "FUSION".
|
||||
expect(frame).toMatch(/███████╗|FUSION/);
|
||||
expect(frame).toContain("AI coding agent dashboard");
|
||||
unmount();
|
||||
});
|
||||
|
||||
it("reveals the FUSION block letters after the wipe-in animation runs", async () => {
|
||||
const controller = newController();
|
||||
const { lastFrame, unmount } = render(<DashboardApp controller={controller} />);
|
||||
await new Promise((r) => setTimeout(r, 800));
|
||||
expect(lastFrame() ?? "").toContain("███████╗");
|
||||
unmount();
|
||||
});
|
||||
|
||||
it("renders system panel content once setSystemInfo fires", () => {
|
||||
const controller = newController();
|
||||
const { lastFrame, unmount, rerender } = render(<DashboardApp controller={controller} />);
|
||||
|
||||
Reference in New Issue
Block a user