ce1aece895
Internal SmartGift build of a Claude Code monitoring dashboard. Lanes: a durable unit of parallel agent work, one per working directory, tracked across session restarts. Managed lanes are git worktrees the dashboard provisions and can reset or remove behind a three-check destroy guard and a counted preflight; adopted lanes are directories you already own and are never destroyable. Pipelines: a lane moves through pipeline stages. A stage the agent declares with evidence renders green; a stage inferred from the tool-event stream renders dashed amber and never counts as done. Detection is forward-only within a 30-minute window, and never writes the declared stage. Workspace: one page at /run with a lane grid, the selected lane's pipeline, and a full Claude console behind a disclosure.
26 lines
771 B
TypeScript
26 lines
771 B
TypeScript
/**
|
|
* @file useDocumentTitle.ts
|
|
* @description Sets `document.title` for the current route/page and restores the
|
|
* previous title on unmount so browser tabs stay distinguishable.
|
|
* @author Nguyễn Ngọc Trí Vĩ <vinnt@smartgift.vn>
|
|
*/
|
|
|
|
import { useEffect } from "react";
|
|
|
|
const APP_SUFFIX = "Claude Code Agent Monitor";
|
|
|
|
/**
|
|
* Update the browser tab title while this component is mounted.
|
|
* @param title Page-specific title segment (without the app suffix), or null to skip.
|
|
*/
|
|
export function useDocumentTitle(title: string | null | undefined): void {
|
|
useEffect(() => {
|
|
if (!title) return;
|
|
const previous = document.title;
|
|
document.title = `${title} · ${APP_SUFFIX}`;
|
|
return () => {
|
|
document.title = previous;
|
|
};
|
|
}, [title]);
|
|
}
|