Defining FitOnResize inside the parent render gave it a new component
identity on every parent render, forcing React to unmount/remount it
and tear down the ResizeObserver each time. Hoist it to module scope
and pass useReactFlow in as a prop. Also drop the unused instanceRef.
* feat(docs): add Wasteland Flow diagrams (federation, lifecycle, claim-to-stamp)
* fix(docs): add px units to flowDiagram height attributes
Reviewers flagged that unitless height values render as invalid CSS
because Markdoc supplies them as strings. Adding px suffix matches
all existing FlowDiagram usages in the codebase.
- Move diagram caption outside the overflow:hidden container so it's
no longer clipped by the fixed-height wrapper
- Recommend fine-grained PATs scoped to the connected repository
instead of classic repo-scope tokens (quick-start.md + settings.md)
- Add callout noting agents act on the user's behalf, so limiting
token scope is a best practice
Replace the abbreviated 6-tool table with the complete list of all 21
gt_* tools grouped by category: Work Creation, Convoy Management,
Bead Management, Agent Management, and Town & UI.
Edge objects in React Flow don't have sourcePosition/targetPosition —
those properties only exist on Node. Remove them from all edge
definitions in bead-lifecycle, adversarial-loop, and convoy-execution
diagrams. The smoothstep edge type handles routing based on the node
positions instead.
Main flow edges (open→in_progress→in_review→closed) now exit and enter
from the top of each node, arcing above. Failed/rejected transitions
exit from bottom of source to top of target, dropping below.
- Add preventScrolling={false} and panOnScroll={false} to ReactFlow
so mouse wheel events pass through to the page instead of being
captured by the diagram
- Set explicit sourcePosition/targetPosition on all nodes so edges
connect from right→left for the main horizontal flow
- Use bottom→top routing for failure/rejection transitions so lines
don't overlap nodes
- Reposition 'failed' node and adjust spacing for cleaner layout
Integrate @xyflow/react for interactive architecture diagrams:
- FlowDiagram component with lazy loading (dynamic import)
- Markdoc tag: {% flowDiagram name="..." height="..." /%}
- Three initial diagrams: bead-lifecycle, adversarial-loop, convoy-execution
- Diagrams registry pattern for easy addition of new diagrams
- Replace TODO placeholders in concepts and code-review pages
The diagrams visualize the bead lifecycle state machine, the
micro-adversarial write/review/revise loop, and convoy DAG execution.
Rename FAQ to 'What's New in Kilo Code' with an enthusiastic intro
highlighting the CLI rebuild, link to the blog announcement, then
transition into the FAQ section for users adjusting to the new version.
Add the foundation for platform-specific documentation:
- Platform type (legacy/new/all) in NavLink interface
- PageVersionSwitcher banner for legacy-only and new-only pages
- PlatformBadge component in SideNav with Legacy/New labels
- Tabs hydration fix (SSR-safe useState + useEffect)
- _app.tsx reads frontmatter.platform and renders banner
No content changes — frontmatter markers and nav tags will be
added in their respective section PRs.
Updated the MoonIcon SVG path within packages/kilo-docs/components/ThemeToggle.tsx to use a standard crescent shape, addressing user feedback that the old moon icon didn't look right. Modified the viewBox to 16x16 and strokeWidth to 1.5 to ensure the visual weight maps cleanly when rendered at 16x16 pixels alongside the sun and system icons natively without requiring custom scaling.
Replaced the inconsistent emoji icons (💻, 🌙, ☀️) in the `ThemeToggle` component of the `kilo-docs` package with custom SVG components (`SystemIcon`, `MoonIcon`, `SunIcon`) to ensure a consistent look and feel that matches other icons in the project. Adjusted the styling of the toggle button to apply `color` to the SVGs using `currentColor`.
- Fix SideNav and TopNav KiloClaw href from /kiloclaw/overview to /kiloclaw
so startsWith() active-state matching works for all /kiloclaw/* routes
- Add /docs/automate/kiloclaw/:path* -> /docs/kiloclaw/:path* redirect to
prevent 404s on old URLs from bookmarks/search results
- Add /kiloclaw -> /kiloclaw/overview redirect so the section root doesn't 404
Move KiloClaw docs from /automate/kiloclaw/* to /kiloclaw/* and add it
as a standalone nav entry in the top bar and side nav, adjacent to
Kilo Gateway. Adds permanent redirects for all old paths.
* docs: convert Copy page button to dropdown menu with Open markdown and Edit page options
* docs: fix button border highlight and add page footer with actions
- Fix split-button hover: highlight entire button group (both main button and chevron) when hovering any part of the group, using .page-actions:hover parent selector
- Add PageFooter component with horizontal layout showing Copy page, Open markdown, and Edit page actions at the bottom of every docs page
- Footer uses same API endpoints (raw-markdown, resolve-path) and GitHub URL construction as the dropdown button
* fix: remove flex class from article-content to fix PageFooter layout
The article-content div had Tailwind's 'flex' class which set display:flex
with default row direction. The 'column' class was not a valid Tailwind
utility (should be 'flex-col'), so the PageFooter rendered to the right
of page content instead of below it. Removing 'flex column' restores
block layout so children stack vertically.
---------
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Replace hardcoded dark-only colors in the announcement banner with
CSS custom variables (--bg-secondary, --text-color, --border-color,
--accent-color, --accent-hover) that automatically adapt to the
site's light and dark themes.
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
- raw-markdown.ts: Check path bounds before any filesystem probes to
prevent leaking file existence info outside the pages directory
- TableOfContents.tsx: Fix SSR hydration mismatch by moving
window.location.hash into useEffect + state instead of reading it
during render
- raw-markdown.ts: Replace weak regex path sanitization with
path.normalize (the path.resolve bounds check remains as primary guard)
- instrumentation-client.ts: Guard PostHog init against missing env var
instead of using non-null assertion (prevents crash in local dev)
- CopyPageButton.tsx: Show error feedback instead of false success when
copy fails