Conversation
Unify the Tangle Cloud surfaces around a single design language so every page (catalog, deploy checkout, instances, earnings, rewards, operators) presents as a coherent app-store storefront rather than nine independently-styled forms. UX changes - Hero card pattern with 3-column metric grid on every top-level page - Wallet-gated empty states show a preview grid of locked data with inline ConnectWalletButton instead of empty divs - Catalog filters move from pill toggles to native <select> dropdowns with explicit Availability and Source labels for accessibility - Deploy checkout splits into "review" cards (operators / payment / caller / TTL) ahead of wallet approval; CTA renamed Create instance - Blueprint detail switches Metadata block to Launch facts with conditional CTAs (Create instance vs Register capacity) keyed off operator availability - Sidebar active state uses bg-primary + shadow with proper aria - Theme persistence to localStorage; dark-first default with single source of truth (dead DOM check removed) - Tables and stat cards get bespoke disconnected-wallet messaging - Header hides wallet button on contextual surfaces (rewards/earnings/ instances) where wallet UX is owned by the page Foundation - styles.css adds .cloud-hero-card, .cloud-compact-header, .catalog-controls, .results-grid, .chip-row, .blueprint-card, .operator-row, .tangle-cloud-visual-badge plus typography rules scoped to .tangle-cloud-page Program plan - docs/blueprint-app-store-program-plan.md captures end-state spec, layered architecture, current/in-flight/gap, five workstreams (surface rendering, AppRegistry contract, TEE commitment, npm packaging, prod TEE validation), sequencing, harness gates, risk register, and program-level definition of done
✅ Deploy Preview for tangle-cloud ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for tangle-dapp ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for tangle-leaderboard ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Single source of truth across Tangle apps. Brand tokens (palette, depth scale, status colors, accent gradients) now come from @tangle-network/brand@0.2.0 instead of being duplicated in tangle-cloud. - Add @tangle-network/brand ^0.2.0 - Bump @tangle-network/sandbox-ui ^0.10.2 → ^0.13.0 (latest stable, npm primitives + dashboard surfaces consistent with the published library) - Replace github-tarball pin of @tangle-network/blueprint-ui with ^0.1.2 from npm (the missing exports surface is published; provenance via tokenless OIDC publish workflow) - Import @tangle-network/brand/styles/tokens.css at the top of apps/tangle-cloud/src/styles.css so tangle-cloud composes brand tokens with its surface-specific overrides Why brand-as-package: the brand README's policy is explicit — "no additions without a cross-app audit; tokens land here or nowhere." Importing the package makes that policy enforceable. tangle-cloud keeps its tangle-cloud-only utility classes (.cloud-hero-card etc.) but the underlying palette stays canonical.
…ntHostCard
When the resolved view is `declarative` and the blueprint manifest carries
real surface content (any of overviewCards, actions, or resourceViews
populated), render BlueprintHostCard on /blueprints/:id instead of the
generic BlueprintDetailHero. The host card already consumes:
- theme.{accentColor, secondaryColor} as CSS vars
- publisher.{name, namespace} for the publisher label
- resources.{serviceLabel, itemLabel} for copy
- overviewCards[] (stat / methods / callouts)
- actions[] with field chips (text-only labels, required badge)
- resourceViews[] rendered as live-after-launch tables
- modules[] + surfaces[] surfaced as console chips
- externalApp link when present
Falls back to BlueprintDetailHero whenever the manifest is missing or
shallow (no actions, no resourceViews, no overviewCards) so existing
generic blueprints render unchanged.
This is the surface-driven rendering predicate from the program plan
(Workstream A): generic blueprints keep the protocol view; blueprints
that declare a manifest get the per-app storefront experience.
6 tasks
2 tasks
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.
Summary
Two things in one bundle, both directly aligned with turning Tangle Cloud into the storefront for blueprint apps:
docs/blueprint-app-store-program-plan.md) — end-state spec, layered architecture across dapp + ai-agent-sandbox-blueprint + tnt-core + blueprint-ui, current/in-flight/gap inventory, five concrete workstreams with acceptance criteria, sequencing diagram, harness gates, risk register, and program-level definition of done.What changed in the UI
cloud-hero-card+cloud-compact-headerwith a 3-column metric grid; typography rules scoped to.tangle-cloud-page(h1 clamp, h2/h3 sizing, balanced wrapping).RequireWalletshows a styled preview grid (4 locked data cards +ConnectWalletButton) instead of empty divs. Deploy checkout, account stats, TVL, instances, earnings, rewards all use it.<select>dropdowns with explicitAvailabilityandSourcelabels for screen readers.bg-primary+ shadow +aria-current="page"; icon spansaria-hidden.localStorageround-trip fortangle-cloud-theme; dark-first default; removed dead DOM check that always returned the same value as the fallback.TangleCloudTable,AllServicesTable,RunningInstanceTableget bespoke disconnected-wallet messaging.CSS foundation (mandatory dependency)
styles.cssadds.cloud-hero-card,.cloud-compact-header,.catalog-controls,.results-grid,.chip-row,.blueprint-card,.operator-row,.tangle-cloud-visual-badge, button-primary token plumbing fordata-sandbox-ui, and typography rules. All page changes depend on these classes existing.Why one PR
The 24 cloud files are conceptually one change — three audited slices (page headers, wallet UX, catalog) all share the same CSS foundation and the same wallet-aware empty-state pattern. Splitting would force interdependent reviews and stacked branches for no benefit.
Program plan (
docs/blueprint-app-store-program-plan.md)Captures the full path from "we host blueprints" to "Tangle Cloud is an app store":
dapp,ai-agent-sandbox-blueprint,blueprint-ui,tnt-core).AppRegistrycontract (greenfield intnt-core)OperatorSecurityCommitment@tangle-network/{blueprint-ui,sandbox-ui}npm publish + dapp upgrade off tarballFLOW-APP-001…005for app-store-specific flows.Test plan
yarn start:tangle-cloud --host 0.0.0.0) renders every redesigned page without console errors.ConnectWalletButton.localStorage.<select>filters.Out of scope (tracked in plan doc)
Notes
stash@{0}: pre-sync duplicate dapp blueprint host work after mergewas audited and confirmed fully duplicated by merged content (feat(tangle-cloud): finish blueprint tier 2 host rollout #3157, feat(tangle-cloud): verify pinned blueprint metadata #3158). Safe to drop locally; nothing salvageable for a follow-up PR.0.0.0.0:4300for Tailscale access (out-of-band).