Skip to content

docs: navigation overhaul, AI-agent access, and design pass - #627

Open
MagicLex wants to merge 66 commits into
logicalclocks:mainfrom
MagicLex:docs-ai-native-artifacts
Open

docs: navigation overhaul, AI-agent access, and design pass#627
MagicLex wants to merge 66 commits into
logicalclocks:mainfrom
MagicLex:docs-ai-native-artifacts

Conversation

@MagicLex

@MagicLex MagicLex commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Documentation overhaul: navigation, AI-agent access, and a design pass.

Navigation

  • Column drill-in nav: the left rail shows one level at a time (flat, no deep indent), with an up-header and a left/right slide between levels.
  • navigation.prune + navigation.path (breadcrumbs) keep deep trees scannable; navigation.indexes section hubs.
  • Sidebar collapse toggle (plain show/hide, no icon rail).
  • Divider now meets the header; nav scrollbar hidden.
  • Logo keeps its aspect ratio; search magnifier visible on the light field.

Docs for AI agents

  • New page documenting the machine-readable surface: llms.txt / llms-full.txt, per-page .md, Copy-for-LLM, and the hosted MCP server at mcp.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 from main.

Content and chrome

  • Drop the Community forum (nav, social, index); refresh the Slack invite.
  • Self-hosted Umami analytics.
  • Remove unused brewer_* config variables from the generated configuration reference.

For agents

  • Design-system charter in .claude/docs/design-system.md, wired into CLAUDE.md: tokens, logo, nav conventions, diagram kit.

🤖 Generated with Claude Code

MagicLex and others added 30 commits July 31, 2026 09:56
…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>
MagicLex and others added 30 commits August 5, 2026 14:28
…-at-register step

- 9 auth PNGs recaptured at 2x on the current UI
- registration.md: the register-time 2FA screen no longer exists in the
  product (client hardcodes twoFactor:false); point to profile settings
  instead and remove the orphaned screenshot

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
11 PNGs at 2x from a clean docs_jobs project (real scripts, real jar,
finished PySpark run). Ray images untouched: Ray is disabled on the
capture cluster. GIFs deferred to a dedicated pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
6 PNGs at 2x: channels list, SMTP/Slack/PagerDuty/webhook modals,
advanced alertmanager yaml page. No alert configuration was saved on
the capture cluster.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The version string moved from Project settings to the bottom of the
help menu in the top navigation bar; recapture and fix the figcaption
in the 5 integration pages that reference it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
18 PNGs at 2x: Jupyter config panels, environment overview, clone and
custom-commands flows on a live 5.x cluster. Ray shots untouched (Ray
disabled on the capture cluster), websocket capacity badges not
forceable, GIFs deferred.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
23 PNGs at 2x: auth config, user management, cluster variables,
projects, monitoring, audit and operation logs, project-mapping
configuration tabs. Skipped: services_logs (no log shipping on the
capture cluster), project-mapping create/edit (mapping sync disabled).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
27 PNGs at 2x: data source catalog and creation forms (10 connectors,
8 CRM variants), provenance, dltHub REST flow, feature-monitoring
alerts. Alert trigger names in the monitoring guide follow the product
rename (data shift detected/undetected). Skipped: external consoles,
hand-drawn diagrams, flows needing egress or an external database, and
monitoring plots that need weeks of accumulated statistics.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…cluster

19 PNGs at 2x: deployment forms (simple/advanced, vLLM, gRPC,
batching, scaling, external access), live deployment overview with
real traffic metrics, model provenance with a rebuilt lineage chain.
Skipped: kit SVGs, excalidraw state charts, and screens removed from
the product (inference logging, model-less Python deployments).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Backend is now Model server, the navigation entry is Model
Deployments, create buttons and the advanced-options label match the
UI, and file pickers gained Create new file. Verified against the
live form during the screenshot recapture. Pre-existing em dashes in
touched files rewritten per the style rule.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4 PNGs at 2x, taken with hw_group_mapping_sync_enabled temporarily
flipped on (restored and verified after). The mapping itself was
created via the admin API because the create form's Groups picker
does not register selections in this build.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
15 PNGs at 2x: git provider configuration and repo flows on a real
clone, feature group create/edit/version/deprecate on a two-version
FG, real online ingestion row. Skipped: a provider modal removed from
the product and two concept diagrams that are not UI.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
10 GIFs re-recorded on the live 5.x UI, assembled from PNG frames
(magick + gifsicle): 130-270 KB each against 1-6.7 MB before, with
sharp text. job_view_out_notebook.gif deferred: it needs a completed
notebook run and the capture cluster's scheduler cannot currently
place one (memory requests saturated).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Screenshots and GIFs in prose get a 1px token border, and
diagram-zoom.js wraps them at runtime so the diagram kit's corner
handle and full-screen overlay apply to images too. Inline images
under 200px stay untouched. Zoomed images fit the viewport and center
in the stage.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
29 PNGs at 2x: project creation and members, feature group and
project sharing flows with real users, tag schemas, secrets, api
keys, scheduler settings. Skipped: 3 scheduler shots gated on node
labels, priority classes and Kueue, none enabled on the capture
cluster.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
26 PNGs at 2x. Trino: SQL runner with real query results, cluster
overview under live load, one query walked through all six detail
tabs. Superset: admin and project views on the real instance; the
dashboards are sparse because the capture path cannot create named
published dashboards (CSRF referrer check behind the proxy).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The UI creation flow was deliberately removed from the product: drop
the create-using-the-UI sections from create.md and notification.md,
point readers at the Catalog section instead, and remove the three
screenshots of the vestigial form.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
New user guide for the browser terminal (enable_terminal): start
form, session lifetime, HopsFS home, hops CLI, git, Claude Code and
Codex sessions, tmux splits. Two 2x screenshots from a live session,
nav entry included.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Navigation sentences rewritten from the old horizontal tab row to the
left-sidebar groups (verified against the recaptured screenshots).
user.md matches the inline pending-user flow and the create-user form
(OAuth2 type, Max number of projects, Cluster role). audit-logs.md
tracks the audit_log_file_path rename. alert.md routes via
Observability > Alerts. superset.md gains the four proxy variables
and the corrected default roles. Pre-existing em dashes in touched
files rewritten per the style rule.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Jobs: PYTHON-default dialog, PYTHON/SPARK-only type radio, Advanced
options page, Executions tab instead of a redirect, current execution
row actions. Data sources: card catalog and Change source line
replace the old Select Storage grid across ten connector guides.
Sharing, project creation, search keywords, python environments and
git provider pages aligned with the current UI. Pre-existing em
dashes in touched files rewritten per the style rule.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The last five data-source guides use the same catalog flow, Ray pages
state the ray_enabled gate instead of claiming RAY is always offered,
and the dead Advance-configuration Scheduler wording is gone from the
repo. Drops the screenshot of the removed git-provider modal.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
6 GIFs re-recorded: the four library-install flows and both Jupyter
server starting flows. The jupyter GIFs stop at the Hopsworks
boundary (recording is per page and the JupyterLab token is single
use), so their figcaptions now describe the starting flow.
spark_ui.gif deferred for the same reason.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
56 replacements across 20 files: colons for term-definition bullets,
sentence splits or commas for prose, n/a for table placeholders,
parentheses where commas would blur an inline list.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
job_configuration.png captured with node labels and a priority class
temporarily enabled (reverted and verified after). Four frame-based
GIFs: api key creation, project creation, tags UI, tag search. The
api key shown was deleted after capture.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant