docs: navigation overhaul, AI-agent access, and design pass - #627
Open
MagicLex wants to merge 125 commits into
Open
docs: navigation overhaul, AI-agent access, and design pass#627MagicLex wants to merge 125 commits into
MagicLex wants to merge 125 commits into
Conversation
…for-LLM) Emit machine-readable artifacts for AI agents from the mkdocs build, with no new pip dependency (pure build hook): - llms.txt: curated index following the site nav, HTML + .md links per page - llms-full.txt: full Markdown corpus in one file - <page>.md: raw Markdown source served next to every rendered HTML page (338) - "Copy for LLM" per-page action (progressive enhancement over the static .md) Validated against `mkdocs build -s` (strict, CI parity). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Self-contained MCP 2.0 server (mcp-server/) that indexes the docs/ Markdown tree and exposes retrieval tools to AI agents. Read-only by design: no write path, no network, reads confined to docs/, 12k-char output cap, read_only_hint on every tool. Tools: search_docs (BM25), get_page, list_sections, get_section, list_pages. Page titles come from the mkdocs nav (208 mapped) with a filename fallback. Tools whose data doesn't exist yet (error catalogue, sizing, config validation) are intentionally omitted, not stubbed. Smoke-tested against the real docs/ tree: index build, tool registration and every tool call. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Theme-aware, in-repo, diffable diagrams. Unblocks most of the missing concept visuals without adding asset files. Validated: a mermaid fence renders as a diagram (class=mermaid) in the built output, not a code listing. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Four documented defaults contradicted the shipped defaults in hopsworks-ee Settings.java (verified against source): - superset_enabled: documented true, ships false - superset_user_roles: documented "Gamma,sql_lab,Dataset,Examples", ships "Gamma,sql_lab" - superset_admin_users: phantom key; the real key is superset_admin_roles (SUPERSET_ADMIN_ROLES) - trino_enabled: documented true, ships false Both enabled flags read on-by-default while the product ships them off. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Stream API sentence claimed data arrives at-most-once (implies loss), while describing the exact mechanism (idempotent online writes + Hudi deduplication) that upgrades Kafka's at-least-once delivery to exactly-once. Internally contradictory; corrected to state the at-least-once to exactly-once upgrade. Matches the book (Ch09). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…esign Draft for review on the branch. Aligns the Concepts section with the framing in the book (Dowling, MLFS), verified against the source chapters. Concepts: - New concepts/fti.md: the FTI (feature/training/inference) pipeline architecture and the four classes of AI system, with a mermaid diagram. Every agent review flagged this as the missing top of the section. - New concepts/index.md: section landing page with the reading path. - fg_overview: foreign keys as index columns (not features), feature groups store untransformed data, vector index as a third store, RonDB named, online store "only latest" qualified as the default, partitioning moved to a collapsible. - fv_overview: root and label feature groups, graph traversal, and serving keys (a feature view has no primary key). - online_api: retrieve by serving keys (foreign keys of the label feature group), not "primary keys", fixing a direct contradiction with the book. - model_monitoring: distribution comparison detects feature drift, not skew; skew is a code difference and is prevented, not monitored. - feature_pipelines, fv/statistics: "feature shift" -> "feature drift" (the book's term; it rejects "shift"). - nav: Concepts landing + FTI page wired in. Home: - Apply the validated grid-cards redesign (Material native cards, no new CSS): start-here, hello-world, deployment models, by role, by task, reference. - Surface the machine-readable layer (llms.txt) and fix the dark-mode homepage (was blanked to "switch to the light theme"). - Delete marctech.css (1073 lines, single-use) and its dark-mode override. Validated: mkdocs build -s clean, markdownlint 0 errors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…codes Two reference surfaces generated from the hopsworks-ee product source, closing gaps where the docs had zero coverage. Both generators are stdlib-only parsers (no Java build), mirroring the existing gen_helm_values marker-injection pattern. - REST API Status Codes (docs/reference/rest_error_codes.md): 1003 codes across 37 categories from RESTCodes.java, with resolved 6-digit code, name, HTTP status and message. scripts/gen_error_codes.py. Bracketed regex messages are escaped so mkdocs does not mangle them; the Schema Registry 5-digit exception and one dynamic-status code are footnoted. - Cluster Configuration Variables Reference (docs/setup_installation/admin/configuration_reference.md): 502 keys from Settings.java, CAConf.java, KubeSettings.java and VariablesHelper.java, with type, default and source module. scripts/gen_config_vars.py, registered as a hopsworks-docs CLI command. Computed (non-literal) defaults and cross-source duplicate/divergent keys are flagged rather than guessed. No description column: the source carries no description field, so one would be invented; it is unlocked by a 4-arity constructor in Settings.java (follow-up). Validated: mkdocs build -s clean, markdownlint 0 errors, ruff clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The serverless product no longer exists; it is a SaaS at run.hopsworks.ai. - Getting Started nav and the home start-here card point to run.hopsworks.ai instead of the Colab quickstart notebook. - Rename the 'Serverless' deployment card to 'SaaS'. - Replace app.hopsworks.ai with run.hopsworks.ai across the home, tutorials intro, and the feature monitoring / data validation guides. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the off-palette single-use architecture.svg on the platform concept page with an inline SVG on the product design-system palette (teal for the Hopsworks-owned data layer, blue for external engines and frameworks, neutral for structure). Uses currentColor for text and strokes plus tinted fills, so it adapts to light and dark themes without the white-box image hack. Renders full width, verified in both themes. Keeps the information of the old diagram (feature engineering, feature store and MLOps, model training, multi-tenant platform) in a cleaner, less busy layout. Delete the orphaned architecture.svg. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Each box in the platform diagram links to its concept page (feature groups, feature views, vector index, registry, serving, monitoring, training, governance, pipelines). Uses version-safe relative hrefs and a hover state. Navigation verified with a real click: Feature Groups reaches fg_overview. Establishes the pattern: diagrams of this type are navigation, not decoration. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…e SVG Extract the architecture diagram styles into a reusable .hops-diagram kit in custom.css (theme-adaptive: currentColor for text and strokes, tinted brand fills, no inline styles). The platform diagram now uses the kit. Convert the FTI page diagram from mermaid to an inline SVG in the same kit, so its nodes are clickable navigation (feature pipeline, feature store, training, registry, inference, predictions, logs each link to their concept page). Mermaid stays for non-navigational illustrations: its click directives break rendering under Material's strict security level, so navigational diagrams use the SVG kit instead. Verified in the browser: both diagrams render full width, and clicks navigate (FTI Training pipeline reaches mlops/training). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the off-palette architecture.svg on the Feature Store concept page with an inline SVG in the shared diagram kit: a feature pipeline writes to feature groups (online and offline stores), feature views read from them and serve through the online API (operational models) and offline API (training data, batch scoring). Each box links to its concept page. Verified in the browser: renders full width and Online API navigates to feature_view/online_api. Delete the orphaned architecture.svg. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ning) Add three inline-SVG diagrams in the shared kit, on concept pages that were walls of text with no visual: - model_monitoring: drift detection over time. Training-dataset distribution as the reference, a detection window sliding over logged inference data, and the distance metric crossing an alert threshold. - offline_api: the point-in-time correct join. For each label row, the join picks the most recent feature row whose event_time is at or before the label, and marks newer rows as excluded. - fv/versioning: a feature-view-version by training-dataset-version grid showing which training data each model was pinned to. Explanatory, not navigation, so no clickable nodes. Theme-adaptive via the kit, verified rendered in the browser. Structural validation: mkdocs build -s clean, markdownlint 0 errors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
27 concept pages opened with no H1 (or an orphan ### under nothing), so the per-page TOC was built from sub-headings and pages were not self-identifying from search. Add an H1 matching the concept to each, and demote the six pages that opened at ### by one level so the outline nests correctly. prediction_services.md left for the AI Systems reframe. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The page split the world into analytical vs operational ML, which classifies by who consumes the prediction, the exact criterion the book rules out, and left streaming and agentic systems with no home. Reframe on the book's definition: an AI system is feature + training + inference pipelines connected via a feature store and model registry, classified by how it computes predictions. Four classes (real-time, batch, stream, agentic); the two existing figures now illustrate the batch and real-time classes. Rename nav Prediction Services -> AI Systems. Use inference store, not database sink. Add a Deployment API section to serving.md: it, not the model signature, is the versioned client contract; serving keys vs request parameters; SLO framing. Reframe the opener as deploying an online inference pipeline, of which the model is one part. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rename 'Training Serving Skew' to 'Offline-Online Feature Skew' and state it as a code difference (invisible to distribution comparison), per the book's definition; 'training-serving skew' is not the book's term. The CI/CD versioning list said deployments are versioned. The book is explicit that a deployment is the one mutable, unversioned asset: new deployments get a new name, upgrade/rollback is blue/green, and clients version against the deployment API. Also state the model-to- feature-view coupling (fallacy logicalclocks#7). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The book uses vector index because it is a property of an online- enabled feature group, a third store alongside online and offline, not a separate service. Rename across hopsworks.md, opensearch.md, storage.md and the nav. Reframe opensearch.md to lead with what a vector index is and when you want one, with OpenSearch as the backing implementation. Fix typos (nmslib, OpenSearch, vector similarity). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Feature monitoring was two ~90% identical pages (FG and FV). Merge into one page that names what each level detects: FG monitoring = data ingestion drift, FV monitoring against the training dataset = feature drift. Fold in the training-data statistics page. Delete fs/feature_view/feature_monitoring.md and .../statistics.md. Versioning was spread across three partial lists (fg, fv, cicd). Merge into one page: FG schema + data versioning (with the two ASOFs, ingestion-time vs event-time), FV + training-data versioning (keeps the grid diagram), models + deployments. Delete fs/feature_view/versioning.md; reduce cicd Versioning to a link. Connector API and External Feature Groups rendered the same SVG twice. Keep the diagram on external_fg.md, link to it from write_apis. Also finish the vector-index rename in governance.md and index.md. 32 concept pages -> 29. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The nav taught concepts before their prerequisites: FTI architecture was on the second-to-last page, Projects on page 20 but assumed from page 2, the transformation taxonomy last but needed early, Spine before the point-in-time join that explains it. Restructure into reading-order tiers: Platform (incl. Projects and FTI up front) -> Feature Store (Data Transformations pulled in) -> Feature Views (Spine and On-Demand moved here, after the joins that motivate them) -> Data Quality -> Versioning and Lifecycle -> Models and Serving (AI Systems now the capstone, not the opener) -> More. Page files unmoved; nav paths only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- On-demand features: add the shift-left vs shift-right decision (precompute vs compute at request time) and its trade-off. - Spine Group: state the label feature group as the default and add the book's discouragement (spines externalise work to clients, can only be root/label FG, best for batch inference). - Model Training: define a training pipeline, its five steps, and the evaluation (test-set metric) vs validation (pass/fail gate, bias slices, scorecard) distinction that decides registry admission. - Model Serving: distinguish blue/green tests (the deployment) from A/B tests (the model's effect on an application KPI). - Model Monitoring: log untransformed features for monitoring and debugging, transformed for model monitoring and SHAP. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Hopsworks Platform: define MLOps (automated testing, versioning, monitoring of ML pipelines and assets), the term the page used undefined. - Tags/Search/Lineage: state the end-to-end lineage chain (data source -> feature group -> feature view -> training data -> model -> deployment) and that schematized tags enforce policy, not just aid discovery. - Model Monitoring: concept drift is detected by comparing outcomes against past predictions, not by comparing distributions. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Two chapters of the book had no representation in Concepts. Streaming Feature Pipelines: the backfill-and-incremental duality as a defining property, feature freshness (event-read to feature- available, with a kit SVG), tumbling/hopping/rolling windows and watermarks, streaming-native (Kappa) vs hybrid (Lambda), the four operational modes. Agents and LLM Systems: agentic workflows as an AI system class, the feature store as a RAG retrieval source keyed by entity ID via the deployment API (kit SVG of the retrieval flow), workflow vs agent, MCP vs A2A. Links to the agent user guides. Both wired into the nav and cross-linked from feature pipelines and AI Systems. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…UDFs) - Online API: the ordered get_feature_vector sequence (precomputed -> passed -> ODT -> MDT -> drop index/helpers -> return), the composition constraint made concrete. - Feature Pipelines: data validation as a shift-left property, and the default STRICT ingestion policy. - Features and Feature Groups: the online store keeps only the latest values by default, but event_time + TTL keeps many rows per entity for shift-right aggregations. - Data Transformations: state the registration-locus rule (ODTs on feature groups, MDTs on feature views) and mixed-mode UDFs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace transformation-in-modular-AI-pipeline.jpg with a kit SVG that places the three transformation types across the FTI pipeline (MIT in the feature pipeline, MDT in training and inference, ODT in inference and backfill), using only the .hops-diagram vocabulary: green = reusable/owned, blue = external/request, neutral = structure. No diagram may carry off-kit inline colors. Add standard .d-alert and .d-alert-line classes for the alert/excluded-row red, and route the model-monitoring drift SVG, the point-in-time-join SVG, and the streaming freshness dots onto kit classes / currentColor. No inline hex remains in any concept diagram. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The most important concept page carried 5 off-palette, lossy JPGs. Re-cut every one as a theme-adaptive .hops-diagram SVG: - types of features (reusable / model-specific / on-demand) - types of transformations (MIT / MDT / ODT) - the MIT/MDT/ODT placement across the FTI pipeline (earlier commit) - the Hopsworks decomposition: three bands (AI pipelines, feature store, storage) showing on-demand UDFs on feature groups and model-dependent UDFs on feature views - the supported-tools quadrant (streaming/batch x smaller/bigger data) Green = reusable/owned, blue = external/request, neutral = structure, consistent with the rest of the kit. Delete the four orphaned JPGs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Full standardization sweep across 21 concept pages: every legacy off-palette Inkscape SVG and raster diagram is now a theme-adaptive .hops-diagram inline SVG using only kit classes (green = owned, blue = external, neutral = structure, red = alert). Same information and labels as the source art, redrawn on the palette, dark-safe, no more white-box hack, no inline hex anywhere. Authored via a fan-out workflow (one agent per page), then verified: strict build, no inline hex, no stray classes, one H1 per page, and spot-checked rendering on the complex pages (dev-inside capability grid, model-registry columns, GE data-validation flow, AI-systems, feature-view joins). Fixed 'Vector Database' back to 'vector index' where the source term leaked in. Delete 37 orphaned assets (the replaced sources plus 6 long-unused files). Only the two product UI screenshots remain under concepts. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The docs read intense and dense: a double green band (green header plus a darker green tab strip), a boxed-in dense left nav, washed-out headings, and blue admonition billboards clashing with the brand. Refurbish, grounded in hopsworks-front's current (post-quartz) tokens: - one green band: the tab strip goes clean, green only on the active tab, so the header is the single brand block. - brand green unified to the product --primary #1eb182 (was #1eb382 in the theme and #21b182 in the diagram kit; now one green everywhere). - typography switched to the product's native system font stack (theme.font: false), zero network cost, matches the app. - left nav de-boxed, roomier vertical rhythm, quiet uppercase section labels, brand-green active item. - headings firmer (darker, tighter); body line-height calmer. - admonitions and collapsibles are calm monochrome cards, not saturated billboards. - remove dead marctech CSS (.wrapper/.one-.six grid, .image_logo_02). Additive refurbish block at the end of custom.css; revertable. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Two things still off after the refurbish: a drop shadow under the header/tabs (the design system is flat, all shadow tokens are zero), and a muddy green-on-green search box. Kill the header shadow (the 1px hairline under the tabs is the only separation now), and make the search field translucent white on the green header, turning solid white with dark text once focused. Verified in light and dark. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The green header and the tab strip stacked to 97px of chrome before any content, and the tab band was the bulk of it. Lighter logo, and let the tab items size to their content with a tighter link margin, so the header + sub-header come down to ~85px with a much tighter tab band. Header stays 48px, tabs 49 -> 37. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Move the primary navigation from top tabs to a left sidebar, the modern docs convention and what the product UI uses. This collapses the top chrome to a single slim green header (was a green header + a second green tab strip) and makes the whole nav tree visible and collapsible. The sidebar mimics the app sidebar: a distinct panel background with a right border, rounded items, and a green-tint active/hover state (sidebar-accent #e6f2ee with green text), collapsible sections. The logo and title in the header keep the 'you are in the docs' anchor. Also: content links use the brand green (like the app), cards get the platform card border/radius plus a hover border, single-link cards become fully clickable (js/card-links.js) with an honest pointer, the TOC keeps a tight rhythm, and anchor jumps land below the sticky header (scroll-padding-top) so the TOC highlights the heading you clicked. Hide the TOC on the landing page, where its scrollspy can't resolve and a landing page needs no TOC. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rebuild the home "three pipelines" figure as the template for the single-kit consolidation, and add the kit primitives it needed: - viz-icon: minimalist line icons, stroke inherits node tone, glyphs normalized to fill the 24-grid so vertical centering is uniform. - viz-zone: labelled container band (the shared state layer). - hops-viz-static: navigable static viz, links stay clickable, toned nodes carry their tone at rest (accent on stroke + icon, no flood). - box-grid ground on every figure (9px cell, faint). FTI figure: three pipelines above a shared state layer, data sources in, predictions + feedback logs out. Curved connectors docked on the border, icon placement by box proportion (top for narrow, left for wide), icon+text always centred, tight viewBox so the figure padding is the only spacing. Title token to 13px, radius halved. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Nav: - Tutorials dropped from the menu (kept reachable via not_in_nav, to be reworked), section renamed Administration, REST status codes moved under a Reference group, </> API marker on the Python/Java API entries. - drill-nav: up button walks to the parent section or the site root, never to the current page (fixes the dead back buttons on top-level sections). - Sidebar divider now spans full height: the box and scrollwrap fills are transparent on desktop so the full-bleed ::before border is not covered. Diagram kit: - Fit width, grow vertical: dropped the min-width pan floor. Diagrams scale to the column and never scroll sideways; wide charts are authored portrait. - the-hopsworks-platform rebuilt on the viz kit and re-flowed portrait. Worklist in .claude/docs/diagram-refresh-todo.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
FTI three-pipelines (reuses the home template), transformation taxonomy, batch scoring timeline, feature-view/training-data versioning grid, and feature-group schema versioning. All fit-width, no horizontal scroll. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Feature category tree, transformation taxonomy variant, the tool quadrant, and the three-band pipelines/feature-store/storage chart. Fit-width, no horizontal scroll. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Feature view offline/online outputs, the feature-group join into a feature view (simplified to the concept), and the feature pipeline source-to-store flow. Fit-width, no horizontal scroll. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Real-time serving flywheel and the batch prediction top-to-bottom flow. Fit-width, no horizontal scroll (edge routing not yet screenshot-verified, the local browser tool is flaky). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Lineage section on concepts/projects/search showed a raster app screenshot (React Flow provenance view). Replace it with a viz-kit lineage chain: data source, feature group, feature view, training data, model, deployment. provenance.png is now unused. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Two project sandboxes (production, development) holding the same ML assets, fed by roles and CI/CD. Was still old-kit (green fills, sans font); now viz (mono, tone on the stroke, neutral zones). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Zoom overlay: bound the figure height to the stage so tall portrait diagrams fit instead of overflowing and needing a pan. - projects-and-governance: restructured to Lex's layout (two stakeholder boxes, a CI/CD layer linking the two environments, then the envs), added node iconography, made the ML assets clickable. - dev-staging-prod and pytest-feature-logic converted to the viz kit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- projects-and-governance: CI/CD arrows now leave the box sides instead of splaying from the bottom. - data-storage-and-sharing: governance-style layout with a shared Feature Store, a dashed backing box that reaches from the production store to the development one (it stays put, the other still exists), labelled SHARED. Icons + clickable assets. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… + last 7 pending) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The rail was collapsing to a single level: a section page showed only its children, hiding the section's own siblings. Show both adjacent levels instead: the current node's siblings plus, on a section page, that section's children indented one step under it. Collapsing is now about depth only, never about hiding same-level items. Everything shallower than the sibling level folds into the up-header and breadcrumb; the up-header names the parent section and walks up to it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Edge paint-order lift and arrow-base markers, play-once animation with replay, a code surface for inline expressions, social-card tooltips, provenance hover, and a +1px type scale for legibility. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
viz_overlap_check.py measures every diagram text against its box and viewBox (monospace advance, skipping transformed/translated text) and fails on overflow. design-system.md documents the code surface, tone-persistence, overlap floor, and the checker. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bigger type, standardized concave arrow markers, and reworked layouts across the fleet. The data_transformations page is fully reworked: animated taxonomy with code surfaces, on-demand duality, a data-over-time placement scene, a split FTI waterfall, a feature-store/storage view, and the tools quadrant. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Pull the extracted diagram figures into the concept pages via snippet includes, including the new feature-store/storage split on the data transformations page. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
# Conflicts: # docs/concepts/projects/search.md # docs/setup_installation/admin/alert.md # docs/user_guides/projects/python/python_env_overview.md # mkdocs.yml
Anchor the rail on the active section instead of the active item. The level you are on renders indented (a leaf's siblings, or a section index's children) and its parent section's siblings render flat above it, so a page no longer looks like the only entry under its section. Up-header names the section above the flat level. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Right TOC: top-level headings get weight and full ink, nested ones drop to a lighter ink and 0.92em, so the nesting reads as hierarchy instead of a flat list. Muting is scoped off the active/hover link so the accent still wins. Drop the redundant html scroll-padding-top: Material already sets scroll-margin-top on headings to clear the sticky header, so ours stacked a second 68px and parked jumped-to headings below the scrollspy line, lighting the previous heading. Removing it lands headings on the line. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Codify + enforce M1-M4 on the 8-unit grid in viz_overlap_check.py (run-in, force field, arrowhead cap, anchored connectors) with edge-connected and axis exemptions, scene-edge resolution, and an ATTR word-boundary fix that had mis-parsed id-bearing edges - Resize every arrowhead 12 to 9, unify to one canonical triangle, and make the edge stroke opaque so heads read solid and cover the line - Add source knobs to all connectors; re-grid 18 diagrams to 24u clearance - Router (diagram-edges.js) reserves a straight run-in so arrows dock square - design-system.md: new "Edge and layout mechanics (enforced)" section Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ions - Bake the router elbow into static edge `d` across the diagrams (perpendicular exit, bend, straight run-in), so the shape needs no runtime JS and stays SSG-safe; aligned edges collapse to straight, tight gaps to a clean curve, feedback loops and axes left as authored - Edge labels over a line get a lifted paper "stabilo" halo (viz-edge-label) so the connector reads as broken behind them instead of through them - Checker enforces text-vs-text collision (per-class advance) and arrow-into- pill; ignores animation-hidden (opacity:0) swap pairs - Fix the surfaced collisions: drop redundant store metas, move/drop pipeline pills off the vertical dock, drop feature-group metas over long names Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sweep every label a connector line passes through and mark it viz-edge-label, so the kit lifts it above the edges and paints the paper halo behind it. The label reads as breaking the line instead of the line crossing through it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- redraw features-and-feature-groups as a data table with column roles and a row callout, mirroring the original figure - add .claude/docs/parity-review.md, 149 changed pages in nav order - refresh the stale old-kit fragment list in the diagram todo Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- redraw write_apis stream-api: fg.insert(df) call, brand marks for pandas/spark/python/kafka, onlinefs and delta streamer branches, dashed common-schema rail, two-row layout - HSFS -> Hopsworks in batch-api; HSFS/HSML API -> Feature Store / Model Registry API in dev/outside and model-registry - parity ledger: fg_overview reviewed, write_apis flagged (Hudi vs Delta wording) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…, checker covers scene text - feature-pipelines: store frame fits the animated row count, pipeline frame fits its chips, content centred under the band - transformations: redrawn to the original composition, three iconed sources merging into one trunk, pipeline pill node, store - nine figures: band title and meta moved from the band's top half to its centre (frame top + 19); band icons centred on the title - viz_overlap_check: measures the longest scene text value, flat texts against their block, kv cells with measured widths; new band-title and band-icon centre passes - feature-views-2: role column nudged inside its cell - parity ledger: feature_pipelines reviewed; design-system documents the band rule and checker coverage Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…directs for merged pages - versioning: schema-change figure shows the real create/insert code in a code box, tables to the right - online_api: get_feature_vector figure is a notebook (In cell, tagged per-stage trace, Out cell); passed_features call shown as a code block - feature-views: code indentation via explicit x offsets (the tspan indent idiom collapsed) - nav: Spine Group back under Feature Store - mkdocs-redirects for the three merged feature-view concept pages and the removed Flink guide - checker: reads scene type ops, sizes viz-codeln Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Snapshot of the docs-ai-native-artifacts branch: - Diagrams moved to the hops-viz kit under diagrams/, edge and spacing mechanics enforced by .claude/docs/viz_overlap_check.py. - Nav restructured: Projects split into Projects, Compute, Analytics and Clients, with section landings on the three-beat shape; Tutorials removed with a redirect; CLI and Wizard pages added. - UI captures recaptured on the current Quartz UI: deployment troubleshooting (list, condition banners, see-logs), python-deployment adapted to the agent form, HuggingFace import (modal, formats, success), kube scheduler queue and topology, terminal panel, session-capacity badges. - Sidebar full-height fix so the nav is not clipped near the footer. - Content parity and diagram-refresh ledgers updated. - Ray docs captures and guides. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NDHgGoXVViiWdzYQibDyBS
Resolved conflicts: - mkdocs.yml: kept the restructured nav (Projects / Compute / Analytics / Clients), added main's new Mountable Secrets page under Projects. - 11 Trino screenshots: took main's versions to match the latest Trino ticket captures. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NDHgGoXVViiWdzYQibDyBS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Documentation overhaul: navigation, AI-agent access, and a design pass.
Navigation
navigation.prune+navigation.path(breadcrumbs) keep deep trees scannable;navigation.indexessection hubs.Docs for AI agents
llms.txt/llms-full.txt, per-page.md, Copy-for-LLM, and the hosted MCP server atmcp.hopsworks.ai.mcp-server/gains a hosted streamable-HTTP transport (per-IP rate limit, configurable allowed hosts), live reindex on docs change, and a Dockerfile + entrypoint that syncs the docs frommain.Diagrams
docs/css/custom.css+docs/js/hops-viz.js): design tokens, semantic tone families, DATA and COMPUTE node families, animated scenes where the mechanism is the message, static kit SVG for structure.diagrams/mirroring each page path, pulled in with snippet includes.docs/js/diagram-edges.jslifts edges to paint above nodes; a standard concave arrow marker; play-once animation with a replay control; a code surface for inline expressions; social-card tooltips..claude/docs/viz_overlap_check.pymeasures every diagram's text against its box and the viewBox (monospace advance, skipping transformed text) and fails on overflow; run across the fleet with zero overflows.Content and chrome
brewer_*config variables from the generated configuration reference.For agents
.claude/docs/design-system.md, wired intoCLAUDE.md: tokens, logo, nav conventions, and the diagram kit (node families, code surface, tone persistence, the overlap floor and checker).🤖 Generated with Claude Code