Repository navigation
Store front: a redesign, and the Concepts as a tree instead of 752 chips - #623
Merged
Merged
Conversation
The store (`?store=1`, index.stakwork.ai) wore the admin console's 12 px type and palette, and a package's page listed every Concept it carries as a chip: openlaw/legal-desk's page was 32,500 px tall. - Concepts are one tree everywhere (`ConceptTree`): the roots with their counts, a branch opened in place and its children drawn only then, a filter over every page. The package page and the Concepts page share it; "Under this page" and search results are rows, 24 at a time. `conceptChildren` (store-links.ts, tested) is the tree's branches. - The top search returns the matching Concept pages as well as packages; `/` focuses it. - The look: its own scale and a darker palette (the shell's variables redefined on `.store`), a hero with the index's counts, cards, a package header with a stat strip that jumps to each part, workflows as rows that open to their inputs, steps and agent tools, a sticky aside, skeletons while a read is out, a phone layout. A "For agents" block carries the one line that adds the store to an MCP client. - `GET /index/packages/:publisher/:name?docs=0` leaves each Concept page's text out (`withoutConceptDocs`); the store reads a package that way. legal-desk's page was 2.7 MB of JSON for a tree drawn from names. - `STRUT_DEV_INDEX=<url> npm run dev` (web/vite.config.ts; the `store` entry in .claude/launch.json) runs this checkout's store over a deployed index's open reads.
…teps are titled Tools - The hero is its label, its headline and the counts: the sentence under the headline is gone. - No section carries a one-line description any more, on the home page or a package's page; `SectionHead` is a title, a count and what the caller puts beside them. The note under a package's steps about the lint goes with them (the `clean` badge's tooltip says what it read). - A package's steps are titled Tools, as the shell's sidebar titles step types: the section, the stat, and the count in the home page's package row. A workflow's own "steps" keep the word: they are what it runs.
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.
What
The store front (
?store=1, what index.stakwork.ai shows a visitor) redesigned, and its Concept lists fixed.Why
openlaw/legal-deskcarries 752, so its page was 32,500 px tall. It is about 2,700 px now.Changes
Concepts
ConceptTreeinStore.tsx): the roots with their counts, a branch opened in place and its children drawn only then, a filter over every page (throughsrc/search.ts). The package page and the Concepts page share it./focuses it.conceptChildreninstore-links.ts(tested) is the tree's branches.Look
components.cssredefines the shell's palette variables on.store, so the shared.btn,.badgeand.md-viewfollow with no second copy of their rules. Nothing outside.storechanges.Server
GET /index/packages/:publisher/:name?docs=0leaves each Concept page's text out (withoutConceptDocs, tested); the store reads a package that way. An index that predates this ignores the parameter, so the page works against either.Dev
STRUT_DEV_INDEX=<url> npm run devinweb/(and thestoreentry in.claude/launch.json) runs this checkout's store over a deployed index's open reads. That is how this was built and checked against index.stakwork.ai's data.For the reviewer
vite build,web/src/store-links.test.ts,web/src/store-run.test.ts,src/packages/index.test.ts; every page in a browser at 1440 px and 390 px against the live index. The fullnpm testwas not run locally.