component

TuxTOC

Article table-of-contents. Right-rail sticky list of headings, auto-detected from a target element. Active state tracked via IntersectionObserver — the heading currently in the upper-middle band of the viewport gets the maroon left-bar and bold treatment. Clicking an entry smooth-scrolls to the anchor.

canonical · auto-detect

Article + TOC three-column layout

Scroll the article column on the left to see the TOC active state on the right update as headings cross into the upper-middle viewport band.

Introduction

The Landscape agent watcher is a long-running process on each agent host that detects file events and ships them to the central index. This is an intro paragraph long enough to push the next heading down the page so the TOC has something to track.

The watcher coalesces events over a 250ms window to avoid shipping every keystroke during text-editor saves. Output is batched and pushed via the central transport channel.

Event types

Four event types flow upstream — create, modify, delete, and move. Each carries the absolute path, inode (POSIX) or stable hash (Windows), size, mtime, and owner.

Create

Triggered when a new inode appears in a watched root. The watcher correlates with the parent directory's last-snapshot to skip events from initial-bootstrap scans.

Modify

Existing inode's content or mtime changes. The watcher debounces to avoid amplifying every save during streaming writes.

Delete

Soft-delete with 30-day retention before purge. The drift reconciler closes any local→central mismatches every hour.

Move

Inode path changes. POSIX uses inode tracking for atomic correlation; Windows uses SHA-256 hashing of the file content. Either way a single move event is emitted, never delete + create.

Heartbeats

Default cadence is every 60 seconds. Override with --heartbeat=30s for tighter monitoring during a deploy or rolling restart.

Staleness

An agent is considered stale after six minutes of no heartbeat. The dashboard surfaces a "needs investigation" chip on stale agents.

Drift reconciliation

The drift reconciler runs hourly. It compares the agent's local index against the central record and closes entries that disagree.

<TuxTOC
  target="#article"
  :levels="[2, 3]"
/>

explicit items

Pre-built items list

Pass :items when you have a parsed AST or a hand-curated list (e.g. from parseMarkdown's TOC output). Skips the auto-detect pass entirely.

props

Props reference

  • items — pre-built TOC list. Each { id, label, depth }. Skips auto-detect.
  • target — CSS selector for the article body. Defaults to "article".
  • levels — heading levels to include. Defaults to [2, 3].
  • title — heading above the list. Defaults to "On this page".
  • noTitle — hide the title (e.g. when wrapping in a custom header).
  • Auto-generates id on headings that don't have one (slugified text content).
  • Active state via IntersectionObserver. Smooth-scroll on click; updates URL hash without page navigation.