文件最后提交记录最后更新时间
feat(web): migrate dashboard checkboxes to @nous-research/ui + DS polish (#28814) * feat(web): migrate dashboard checkboxes to @nous-research/ui + DS polish Replaces the hand-rolled shadcn-style Checkbox in web/src/components/ui/ with the Nous DS Checkbox (Radix-backed) from @nous-research/ui, bumps the DS to 0.14.2, and picks up two regressions surfaced by the bump. Checkbox migration - bump @nous-research/ui 0.14.0 → ^0.14.2 and remove web/src/components/ui/checkbox.tsx - migrate ProfilesPage and ModelPickerDialog to the DS Checkbox API (onCheckedChange, paired <Label htmlFor>) - expose Checkbox on the dashboard plugin SDK (web/src/plugins/registry.ts) so plugin bundles can use the same DS component - migrate the kanban dashboard plugin's 7 native <input type="checkbox"> call sites to the SDK Checkbox, with a native-input fallback shim so the bundle still renders against older hosts that predate the SDK export Fix: missing font registrations after the 0.14.x split - import @nous-research/ui/styles/fonts.css before globals.css in web/src/index.css. As of 0.14.x, globals.css only declares the --font-* variables (Collapse, Mondwest, Rules Compressed/Expanded); the @font-face registrations now live in a separate fonts.css, so without this import the DS components silently fall back to a system font stack and look unstyled. Fix: right-align page header toolbars on sm+ viewports - The mobile dashboard polish in #28127 flipped four pages' setEnd(...) wrappers from justify-end to w-full ... justify-start so toolbars stack below the title and align left on small screens. But the outer end slot in PageHeaderProvider already has sm:justify-end, and that has no effect when its only child is w-full — once a flex child fills the row, the parent's justify-* can't move it. The toolbar pinned to the *left* of the right-side sm:max-w-md (~448px) slot, making the buttons appear to float a couple-hundred pixels off the right edge on Analytics, Models, Logs, and Plugins. - Re-add sm:justify-end on the inner wrapper of each affected page, preserving the mobile stacked layout. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(nix): update web npmDeps hash for package-lock bump Co-authored-by: Cursor <cursoragent@cursor.com> * fix(nix): refresh npm lockfile hashes * chore(ci): re-trigger checks after nix lockfile hash fix Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>14 天前
fix(dashboard): use browser scrollback for chat wheel 16 天前
feat(web): mobile dashboard UX polish (#28127) * feat(web): mobile dashboard UX polish Bottom sheets for sidebar theme/language pickers on narrow viewports with enter/exit animation and drag-to-close; inline header badges beside titles; bottom padding on the route outlet for scroll clearance; profiles loading uses a unicode braille spinner; align profile/cron card actions to the top; viewport-fit cover and supporting layout tweaks across dashboard pages. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix Nix web npm hash and mobile sheet accessibility. Align fetchNpmDeps in nix/web.nix with web/package-lock.json for CI. Improve BottomPickSheet backdrop labeling, avoid aria-hidden on the dialog during exit animation, and wire theme/language sheets with listbox semantics and localized dismiss labels. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>16 天前
feat(kanban): show dashboard cron jobs across profiles Salvages #27568 by @SerenityTn. Dashboard cron page now lists cron jobs from all profiles, with profile-aware filter UI and storage routing. Includes test coverage for cross-profile listing, mutation, deletion, and validation. Also fixes orphan conflict markers in config.py left by an earlier salvage merge (kanban.dispatch_stale_timeout_seconds was double-nested in HEAD/PR markers from #28452 salvage of #23790). 16 天前
fix(web): force light color-scheme on docs iframe The Documentation tab embeds the public Hermes Agent docs site via an <iframe>. On any system where the browser's prefers-color-scheme resolves to dark — the default on macOS with system dark mode, and common on Linux/Windows too — the docs body text rendered nearly invisible against its own background. Cause: Docusaurus intentionally leaves <html> and <body> transparent and relies on the browser's Canvas color to fill the viewport. Inside our iframe, the iframe element had bg-background (the dashboard's dark canvas) AND inherited the dashboard's dark color-scheme, so the browser set the iframe's Canvas to a dark value. Docusaurus's transparent body exposed that dark Canvas, and the docs body text (tuned for a light Canvas) became near-illegible. Affects every built-in dashboard theme. Fix: replace bg-background on the iframe with [color-scheme:light] (spec-blessed cross-origin override of the inherited color-scheme; forces the iframe's Canvas to light) and bg-white (belt-and-suspenders fallback during the brief paint window before content loads). The docs site's own theme toggle keeps working — Docusaurus stores its choice in localStorage and applies opaque dark backgrounds to its layout elements that cover the white Canvas we forced. 27 天前
feat(web): mobile dashboard UX polish (#28127) * feat(web): mobile dashboard UX polish Bottom sheets for sidebar theme/language pickers on narrow viewports with enter/exit animation and drag-to-close; inline header badges beside titles; bottom padding on the route outlet for scroll clearance; profiles loading uses a unicode braille spinner; align profile/cron card actions to the top; viewport-fit cover and supporting layout tweaks across dashboard pages. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix Nix web npm hash and mobile sheet accessibility. Align fetchNpmDeps in nix/web.nix with web/package-lock.json for CI. Improve BottomPickSheet backdrop labeling, avoid aria-hidden on the dialog during exit animation, and wire theme/language sheets with listbox semantics and localized dismiss labels. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>16 天前
feat(web): migrate dashboard checkboxes to @nous-research/ui + DS polish (#28814) * feat(web): migrate dashboard checkboxes to @nous-research/ui + DS polish Replaces the hand-rolled shadcn-style Checkbox in web/src/components/ui/ with the Nous DS Checkbox (Radix-backed) from @nous-research/ui, bumps the DS to 0.14.2, and picks up two regressions surfaced by the bump. Checkbox migration - bump @nous-research/ui 0.14.0 → ^0.14.2 and remove web/src/components/ui/checkbox.tsx - migrate ProfilesPage and ModelPickerDialog to the DS Checkbox API (onCheckedChange, paired <Label htmlFor>) - expose Checkbox on the dashboard plugin SDK (web/src/plugins/registry.ts) so plugin bundles can use the same DS component - migrate the kanban dashboard plugin's 7 native <input type="checkbox"> call sites to the SDK Checkbox, with a native-input fallback shim so the bundle still renders against older hosts that predate the SDK export Fix: missing font registrations after the 0.14.x split - import @nous-research/ui/styles/fonts.css before globals.css in web/src/index.css. As of 0.14.x, globals.css only declares the --font-* variables (Collapse, Mondwest, Rules Compressed/Expanded); the @font-face registrations now live in a separate fonts.css, so without this import the DS components silently fall back to a system font stack and look unstyled. Fix: right-align page header toolbars on sm+ viewports - The mobile dashboard polish in #28127 flipped four pages' setEnd(...) wrappers from justify-end to w-full ... justify-start so toolbars stack below the title and align left on small screens. But the outer end slot in PageHeaderProvider already has sm:justify-end, and that has no effect when its only child is w-full — once a flex child fills the row, the parent's justify-* can't move it. The toolbar pinned to the *left* of the right-side sm:max-w-md (~448px) slot, making the buttons appear to float a couple-hundred pixels off the right edge on Analytics, Models, Logs, and Plugins. - Re-add sm:justify-end on the inner wrapper of each affected page, preserving the mobile stacked layout. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(nix): update web npmDeps hash for package-lock bump Co-authored-by: Cursor <cursoragent@cursor.com> * fix(nix): refresh npm lockfile hashes * chore(ci): re-trigger checks after nix lockfile hash fix Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>14 天前
feat(web): migrate dashboard checkboxes to @nous-research/ui + DS polish (#28814) * feat(web): migrate dashboard checkboxes to @nous-research/ui + DS polish Replaces the hand-rolled shadcn-style Checkbox in web/src/components/ui/ with the Nous DS Checkbox (Radix-backed) from @nous-research/ui, bumps the DS to 0.14.2, and picks up two regressions surfaced by the bump. Checkbox migration - bump @nous-research/ui 0.14.0 → ^0.14.2 and remove web/src/components/ui/checkbox.tsx - migrate ProfilesPage and ModelPickerDialog to the DS Checkbox API (onCheckedChange, paired <Label htmlFor>) - expose Checkbox on the dashboard plugin SDK (web/src/plugins/registry.ts) so plugin bundles can use the same DS component - migrate the kanban dashboard plugin's 7 native <input type="checkbox"> call sites to the SDK Checkbox, with a native-input fallback shim so the bundle still renders against older hosts that predate the SDK export Fix: missing font registrations after the 0.14.x split - import @nous-research/ui/styles/fonts.css before globals.css in web/src/index.css. As of 0.14.x, globals.css only declares the --font-* variables (Collapse, Mondwest, Rules Compressed/Expanded); the @font-face registrations now live in a separate fonts.css, so without this import the DS components silently fall back to a system font stack and look unstyled. Fix: right-align page header toolbars on sm+ viewports - The mobile dashboard polish in #28127 flipped four pages' setEnd(...) wrappers from justify-end to w-full ... justify-start so toolbars stack below the title and align left on small screens. But the outer end slot in PageHeaderProvider already has sm:justify-end, and that has no effect when its only child is w-full — once a flex child fills the row, the parent's justify-* can't move it. The toolbar pinned to the *left* of the right-side sm:max-w-md (~448px) slot, making the buttons appear to float a couple-hundred pixels off the right edge on Analytics, Models, Logs, and Plugins. - Re-add sm:justify-end on the inner wrapper of each affected page, preserving the mobile stacked layout. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(nix): update web npmDeps hash for package-lock bump Co-authored-by: Cursor <cursoragent@cursor.com> * fix(nix): refresh npm lockfile hashes * chore(ci): re-trigger checks after nix lockfile hash fix Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>14 天前
feat(web): migrate dashboard checkboxes to @nous-research/ui + DS polish (#28814) * feat(web): migrate dashboard checkboxes to @nous-research/ui + DS polish Replaces the hand-rolled shadcn-style Checkbox in web/src/components/ui/ with the Nous DS Checkbox (Radix-backed) from @nous-research/ui, bumps the DS to 0.14.2, and picks up two regressions surfaced by the bump. Checkbox migration - bump @nous-research/ui 0.14.0 → ^0.14.2 and remove web/src/components/ui/checkbox.tsx - migrate ProfilesPage and ModelPickerDialog to the DS Checkbox API (onCheckedChange, paired <Label htmlFor>) - expose Checkbox on the dashboard plugin SDK (web/src/plugins/registry.ts) so plugin bundles can use the same DS component - migrate the kanban dashboard plugin's 7 native <input type="checkbox"> call sites to the SDK Checkbox, with a native-input fallback shim so the bundle still renders against older hosts that predate the SDK export Fix: missing font registrations after the 0.14.x split - import @nous-research/ui/styles/fonts.css before globals.css in web/src/index.css. As of 0.14.x, globals.css only declares the --font-* variables (Collapse, Mondwest, Rules Compressed/Expanded); the @font-face registrations now live in a separate fonts.css, so without this import the DS components silently fall back to a system font stack and look unstyled. Fix: right-align page header toolbars on sm+ viewports - The mobile dashboard polish in #28127 flipped four pages' setEnd(...) wrappers from justify-end to w-full ... justify-start so toolbars stack below the title and align left on small screens. But the outer end slot in PageHeaderProvider already has sm:justify-end, and that has no effect when its only child is w-full — once a flex child fills the row, the parent's justify-* can't move it. The toolbar pinned to the *left* of the right-side sm:max-w-md (~448px) slot, making the buttons appear to float a couple-hundred pixels off the right edge on Analytics, Models, Logs, and Plugins. - Re-add sm:justify-end on the inner wrapper of each affected page, preserving the mobile stacked layout. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(nix): update web npmDeps hash for package-lock bump Co-authored-by: Cursor <cursoragent@cursor.com> * fix(nix): refresh npm lockfile hashes * chore(ci): re-trigger checks after nix lockfile hash fix Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>14 天前
feat(web): migrate dashboard checkboxes to @nous-research/ui + DS polish (#28814) * feat(web): migrate dashboard checkboxes to @nous-research/ui + DS polish Replaces the hand-rolled shadcn-style Checkbox in web/src/components/ui/ with the Nous DS Checkbox (Radix-backed) from @nous-research/ui, bumps the DS to 0.14.2, and picks up two regressions surfaced by the bump. Checkbox migration - bump @nous-research/ui 0.14.0 → ^0.14.2 and remove web/src/components/ui/checkbox.tsx - migrate ProfilesPage and ModelPickerDialog to the DS Checkbox API (onCheckedChange, paired <Label htmlFor>) - expose Checkbox on the dashboard plugin SDK (web/src/plugins/registry.ts) so plugin bundles can use the same DS component - migrate the kanban dashboard plugin's 7 native <input type="checkbox"> call sites to the SDK Checkbox, with a native-input fallback shim so the bundle still renders against older hosts that predate the SDK export Fix: missing font registrations after the 0.14.x split - import @nous-research/ui/styles/fonts.css before globals.css in web/src/index.css. As of 0.14.x, globals.css only declares the --font-* variables (Collapse, Mondwest, Rules Compressed/Expanded); the @font-face registrations now live in a separate fonts.css, so without this import the DS components silently fall back to a system font stack and look unstyled. Fix: right-align page header toolbars on sm+ viewports - The mobile dashboard polish in #28127 flipped four pages' setEnd(...) wrappers from justify-end to w-full ... justify-start so toolbars stack below the title and align left on small screens. But the outer end slot in PageHeaderProvider already has sm:justify-end, and that has no effect when its only child is w-full — once a flex child fills the row, the parent's justify-* can't move it. The toolbar pinned to the *left* of the right-side sm:max-w-md (~448px) slot, making the buttons appear to float a couple-hundred pixels off the right edge on Analytics, Models, Logs, and Plugins. - Re-add sm:justify-end on the inner wrapper of each affected page, preserving the mobile stacked layout. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(nix): update web npmDeps hash for package-lock bump Co-authored-by: Cursor <cursoragent@cursor.com> * fix(nix): refresh npm lockfile hashes * chore(ci): re-trigger checks after nix lockfile hash fix Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>14 天前
feat(web): mobile dashboard UX polish (#28127) * feat(web): mobile dashboard UX polish Bottom sheets for sidebar theme/language pickers on narrow viewports with enter/exit animation and drag-to-close; inline header badges beside titles; bottom padding on the route outlet for scroll clearance; profiles loading uses a unicode braille spinner; align profile/cron card actions to the top; viewport-fit cover and supporting layout tweaks across dashboard pages. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix Nix web npm hash and mobile sheet accessibility. Align fetchNpmDeps in nix/web.nix with web/package-lock.json for CI. Improve BottomPickSheet backdrop labeling, avoid aria-hidden on the dialog during exit animation, and wire theme/language sheets with listbox semantics and localized dismiss labels. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>16 天前
feat(web): mobile dashboard UX polish (#28127) * feat(web): mobile dashboard UX polish Bottom sheets for sidebar theme/language pickers on narrow viewports with enter/exit animation and drag-to-close; inline header badges beside titles; bottom padding on the route outlet for scroll clearance; profiles loading uses a unicode braille spinner; align profile/cron card actions to the top; viewport-fit cover and supporting layout tweaks across dashboard pages. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix Nix web npm hash and mobile sheet accessibility. Align fetchNpmDeps in nix/web.nix with web/package-lock.json for CI. Improve BottomPickSheet backdrop labeling, avoid aria-hidden on the dialog during exit animation, and wire theme/language sheets with listbox semantics and localized dismiss labels. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>16 天前