Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
289 commits
Select commit Hold shift + click to select a range
0357e36
style(feed): add subtle hover/active effects to poll options
paolomolo Oct 23, 2025
87c2f87
feat(feed): live update poll stats after vote/retract and show pendin…
paolomolo Oct 23, 2025
0943dd9
fix(feed): show pending state only on the voted option
paolomolo Oct 23, 2025
59e88d2
feat(feed): show pending spinner on mobile and label on desktop
paolomolo Oct 23, 2025
62c1ec9
style(feed): align pending order to Spinner → text → 'Your vote'
paolomolo Oct 23, 2025
f6fc2df
fix(feed): support switching poll vote from one option to another
paolomolo Oct 23, 2025
aae89b9
fix(feed): optimistic update myVote on option change and retract
paolomolo Oct 23, 2025
79f6fe2
fix(feed): avoid stale myVote override; notify backend and delay refresh
paolomolo Oct 23, 2025
9a08052
feat(feed): optimistic percentage updates on vote/retract
paolomolo Oct 23, 2025
82dedd4
fix(feed): lock optimistic myVote for short window to prevent bounce
paolomolo Oct 23, 2025
33965f9
fix(feed): only update selection/percentages after tx submit
paolomolo Oct 23, 2025
6119e01
feat(social): add poll detail view integrated with plugin
paolomolo Oct 23, 2025
ae18465
fix(social): preserve feed scroll on poll navigation and scroll to to…
paolomolo Oct 23, 2025
dc395b7
feat(social): open poll detail on card click while preserving interac…
paolomolo Oct 23, 2025
ac50adb
fix(social): make poll card non-clickable on poll detail view
paolomolo Oct 23, 2025
dbf8efe
feat(social): show on-chain badge on poll detail like feed
paolomolo Oct 23, 2025
c2f8304
feat(social): include poll description in feed and detail views
paolomolo Oct 23, 2025
9331904
feat(social): add share button to poll card and align footer layout
paolomolo Oct 23, 2025
e9eaafd
chore(social): adjust poll card footer layout per UX
paolomolo Oct 23, 2025
8d43db4
feat(social): label on-chain popover as 'Poll' for poll items
paolomolo Oct 23, 2025
4767e05
fix(social): use MDW tx timestamp in on-chain popover
paolomolo Oct 23, 2025
6e69733
feat(social): align poll meta timestamp with post pattern
paolomolo Oct 23, 2025
fd45aeb
chore(social): match poll meta font size to timestamp
paolomolo Oct 23, 2025
dc47b0b
chore(social): increase spacing between poll meta row and title
paolomolo Oct 23, 2025
8279b54
chore(social): remove underline/hover from Retract vote button
paolomolo Oct 23, 2025
b71417e
chore(social): adjust Retract vote hover to underline only (no glow)
paolomolo Oct 23, 2025
ce967f0
fix(social): remove residual glow from Retract vote hover
paolomolo Oct 23, 2025
de0a36f
feat(plugins): introduce external plugin SDK and composer actions
paolomolo Oct 24, 2025
df7f11b
feat(sdk): add composer attachment API
paolomolo Oct 24, 2025
81f380e
chore(sdk): refine ensureWallet return type for attachments
paolomolo Oct 24, 2025
337cd5e
feat(composer): add attachments toolbar and panel mount in PostForm
paolomolo Oct 24, 2025
f821d85
feat(poll): implement composer Poll attachment panel and async creation
paolomolo Oct 24, 2025
fa645c9
feat(feed): render inline poll placeholder/card inside post items
paolomolo Oct 24, 2025
5a15935
docs(plugin): add comprehensive plugin SDK guide with attachments
paolomolo Oct 24, 2025
ebf4084
chore(feature-flag): gate composer attachments behind UNFINISHED_FEAT…
paolomolo Oct 24, 2025
d80fd23
docs(plugin): consolidate docs into plugin-sdk.md and remove outdated…
paolomolo Oct 24, 2025
88bb3a3
chore(flags): enable composer-attachments feature by default
paolomolo Oct 24, 2025
0af6823
feat(composer): position poll attachment panel below textarea and abo…
paolomolo Oct 24, 2025
a25f443
feat(composer): UX tweaks for poll mode
paolomolo Oct 24, 2025
46e3f3f
feat(composer): make Poll toolbar button toggle to 'Remove poll' and …
paolomolo Oct 24, 2025
40e1bec
refactor(composer): remove left 'Start poll' button and keep main CTA…
paolomolo Oct 24, 2025
ca57551
feat(composer): move Poll button to the right of GIF button
paolomolo Oct 24, 2025
df1ea48
Merge remote-tracking branch 'origin/develop' into feat/feed-plugin-a…
paolomolo Oct 24, 2025
c5a8662
feat(poll): switch from close-height input to duration pickers
paolomolo Oct 24, 2025
c867846
feat(poll): add labels for Days/Hours/Minutes in duration pickers
paolomolo Oct 24, 2025
710ba2c
feat(poll): float labels inside duration inputs (Days/Hours/Minutes)
paolomolo Oct 24, 2025
94fc54d
feat(poll): use native dropdowns for duration (Days/Hours/Minutes) wi…
paolomolo Oct 24, 2025
bbc1687
feat(poll): style native dropdown arrows to be larger and white
paolomolo Oct 24, 2025
8e98204
feat(poll): show formatted close time with block height
paolomolo Oct 24, 2025
d1e7923
fix(poll): adjust close text formatting and ensure block height visible
paolomolo Oct 24, 2025
d681c1b
style(poll): format block height with hash and commas
paolomolo Oct 24, 2025
a0ae9fd
style(poll): use Lucide ChevronDown icons for dropdowns
paolomolo Oct 24, 2025
f0975f5
feat(poll): add plus button to add new option fields
paolomolo Oct 24, 2025
00edada
style(poll): remove hover effect from plus button
paolomolo Oct 24, 2025
6703715
fix(poll): prevent button active states and tap highlights
paolomolo Oct 24, 2025
c562e2a
fix(poll): replace button with div for plus icon
paolomolo Oct 24, 2025
4e41eaa
feat(poll): update placeholder and validate form submission
paolomolo Oct 24, 2025
57c8023
style(composer): update toolbar icons
paolomolo Oct 24, 2025
9a2221f
feat(poll): clear GIFs when poll attachment is activated
paolomolo Oct 24, 2025
0e7f77d
style(composer): replace GIF icon with SquarePlay
paolomolo Oct 24, 2025
ca75b86
style(composer): set GIF icon to same size as emoji
paolomolo Oct 24, 2025
82b294e
style(composer): reduce gap between icons and text
paolomolo Oct 24, 2025
f64844e
style(poll): hide icon when showing 'Remove poll' text
paolomolo Oct 24, 2025
017f32d
fix(poll): correct validation to allow posting with valid poll
paolomolo Oct 24, 2025
b90c86b
style(poll): remove 'Options' label
paolomolo Oct 24, 2025
4d7c046
fix(poll): use correct method to access poll options in validation
paolomolo Oct 24, 2025
a20fa21
feat(poll): submit on-chain poll when attachment active
paolomolo Oct 24, 2025
9a0ca4a
feat(poll): push pending feed entry after wallet confirmation and per…
paolomolo Oct 24, 2025
2823824
fix(poll): align contract calls with /voting create
paolomolo Oct 24, 2025
eafbf89
feat(poll): show on-chain progress 1/2 → 2/2 on Post button
paolomolo Oct 24, 2025
5e4029e
feat(poll): add mobile poll toggle next to GIF
paolomolo Oct 24, 2025
d981e14
style(poll): remove icon from mobile poll button
paolomolo Oct 24, 2025
cd19db0
style(poll): remove background from poll wrapper; no bg/border/paddin…
paolomolo Oct 24, 2025
681882a
feat(poll): mobile remove control below close line; hide header poll …
paolomolo Oct 24, 2025
9a83106
style(poll): refine mobile 'Remove poll' button
paolomolo Oct 24, 2025
7bef958
feat(poll): keep textarea single-row on mobile when poll active
paolomolo Oct 24, 2025
e2185ab
fix(poll): force single-row min height on mobile when poll active
paolomolo Oct 24, 2025
e07b4a2
fix(poll): apply single-row height immediately on mobile when togglin…
paolomolo Oct 25, 2025
60296df
feat(feed): inject poll-created entries into global and profile feeds…
paolomolo Oct 25, 2025
7ff6e08
fix(feed): update correct query keys on inject so home list prepends …
paolomolo Oct 25, 2025
5479a45
style(feed): add px-2 on mobile for poll created card
paolomolo Oct 25, 2025
a011da0
style(feed): add px-2 to inner poll card sections on mobile
paolomolo Oct 25, 2025
179e4c7
style(feed): reduce inner content padding on mobile to px-2 for feed …
paolomolo Oct 25, 2025
7b983e6
style(feed): force content padding to 8px on mobile for plugin cards
paolomolo Oct 25, 2025
2caa43b
style(feed): mobile padding = 20px top/bottom, 8px left/right for plu…
paolomolo Oct 25, 2025
7a84c7c
style(feed): set mobile horizontal padding to 0 for plugin card content
paolomolo Oct 25, 2025
2905bd3
style(feed): set mobile horizontal padding to 0 for poll card inner c…
paolomolo Oct 25, 2025
88b8ce9
feat(poll): include author address in injected entries for profile fe…
paolomolo Oct 25, 2025
9ac1364
fix(feed): inject into correct profile cache key using entry.data.author
paolomolo Oct 25, 2025
4b5b9c5
feat(plugins): add menu capability and navRegistry
paolomolo Oct 27, 2025
980892c
feat(plugins): add local plugin loader and wire in App
paolomolo Oct 27, 2025
22ffbef
refactor(feed): convert built-in feed plugins to SDK modules
paolomolo Oct 27, 2025
a376821
feat(extensions): add AeSdk contract loader helper
paolomolo Oct 27, 2025
5501f4d
fix(plugins): ensure plugin wrappers compile as TSX
paolomolo Oct 27, 2025
de6a150
feat(nft-marketplace): scaffold extension with route and menu
paolomolo Oct 27, 2025
58fd586
feat(nft-marketplace): add minimal backend client
paolomolo Oct 27, 2025
3aba06b
docs(extensions): add comprehensive guides and tutorials
paolomolo Oct 27, 2025
415b87f
build(extensions): add scaffold and validation scripts
paolomolo Oct 27, 2025
32b949e
ci(extensions): run ext:check on pull requests
paolomolo Oct 27, 2025
2489869
fix(plugins): de-duplicate routes and menu entries during registration
paolomolo Oct 27, 2025
74a669a
fix(plugins): prevent double plugin bootstrap on re-render
paolomolo Oct 27, 2025
411ee28
fix(plugins): eliminate duplicate registrations at source
paolomolo Oct 27, 2025
78c19b3
chore(nft): stop auto-registering tutorial NFT plugin
paolomolo Oct 27, 2025
162d5cf
fix(polls): wire vote/revoke handlers in plugin renderer
paolomolo Oct 27, 2025
2878d0e
fix(poll): display 'Closed' for expired polls instead of '1s left'
paolomolo Oct 27, 2025
401ae66
fix(poll): prevent voting on closed polls
paolomolo Oct 27, 2025
7105b92
fix(poll): remove hover effects from closed poll options
paolomolo Oct 27, 2025
2e23bf5
feat(poll): show time since closure for closed polls
paolomolo Oct 27, 2025
fc05b9f
feat(poll): fetch all polls sorted by creation time
paolomolo Oct 27, 2025
402a3ab
fix(poll): remove duplicate poll attachment registration
paolomolo Oct 27, 2025
1dd53c5
fix(routing): make plugin routes dynamically loaded
paolomolo Oct 27, 2025
13bcb4f
fix(plugins): add deduplication logic to loadLocalPlugins
paolomolo Oct 27, 2025
a31005a
fix(poll): add composer capability and poll attachment to plugin
paolomolo Oct 27, 2025
47afcab
docs(polls): add comprehensive Superhero App Extension tutorial (poll…
paolomolo Oct 27, 2025
b0876a6
docs(extensions): rewrite to cover all capabilities and loading modes
paolomolo Oct 27, 2025
ff68a04
docs(extensions): clean up tutorial steps
paolomolo Oct 27, 2025
feb61e3
fix(routing): memoize routes in DynamicRouter to prevent recreation
paolomolo Oct 27, 2025
b9981c7
fix(routing): remove useMemo with mutable dependency in DynamicRouter
paolomolo Oct 27, 2025
03782b8
docs(polls): add contribution flow (fork + PR) to tutorial
paolomolo Oct 27, 2025
5ab7ece
fix(plugins): prevent plugin reload on navigation changes
paolomolo Oct 27, 2025
9abe4bb
docs(extensions): add info box linking to polls tutorial
paolomolo Oct 27, 2025
0fa120b
fix(plugins): ensure both local and external plugins load before render
paolomolo Oct 27, 2025
7844d30
docs: convert tutorial references to relative links
paolomolo Oct 27, 2025
d525576
docs(extensions): use GitHub note callout for tutorial link
paolomolo Oct 27, 2025
060269c
fix(plugins): remove unused localSuccess variable
paolomolo Oct 27, 2025
abc9516
Merge pull request #248 from superhero-com/feat/plugin-refactor
paolomolo Oct 27, 2025
47c94b6
docs(tutorial): add overview for AI-assisted Superhero extensions
paolomolo Oct 28, 2025
ca1f594
docs(tutorial): add environment setup for Cursor/Sophia dev
paolomolo Oct 28, 2025
9028110
docs(tutorial): add project scaffold with TypeScript, Vitest and SDK
paolomolo Oct 28, 2025
5be8e52
docs(tutorial): add Sophia basics for builders
paolomolo Oct 28, 2025
569aa69
docs(tutorial): add compiler and build guide
paolomolo Oct 28, 2025
ce32430
docs(tutorial): add poll contract walkthrough
paolomolo Oct 28, 2025
8d73e45
docs(tutorial): add testing with Vitest and AeSdk
paolomolo Oct 28, 2025
b9684ab
docs(tutorial): add deploy to devnet/testnet guide
paolomolo Oct 28, 2025
feb59c3
docs(tutorial): add integration into Superhero extension
paolomolo Oct 28, 2025
3ee8329
docs(tutorial): add AI workflows in Cursor
paolomolo Oct 28, 2025
c457604
docs(tutorial): add troubleshooting and FAQ
paolomolo Oct 28, 2025
f2bce6b
docs(tutorial): add security checklist for polls
paolomolo Oct 28, 2025
2c853c7
docs(tutorial): add references and glossary
paolomolo Oct 28, 2025
018d00d
docs(tutorial): use relative links across hackathon tutorial pages
paolomolo Oct 28, 2025
ba9c361
docs(tutorial): update table of contents
paolomolo Oct 28, 2025
90451fa
docs(tutorial): welcome hackathon builders and generalize scope
paolomolo Oct 28, 2025
3e916ca
docs(tutorial): add 00a Quickstart fast-track
paolomolo Oct 28, 2025
bdd499e
docs(tutorial): add Superhero Wallet onboarding
paolomolo Oct 28, 2025
b3737bb
docs(tutorial): add middleware and data access guidance
paolomolo Oct 28, 2025
f4d3c5d
docs(tutorial): add Plugin SDK deep dive
paolomolo Oct 28, 2025
03bb810
docs(tutorial): improve integration page and reference Plugin SDK
paolomolo Oct 28, 2025
088e41d
docs(tutorial): add checklist and deploy/submit page
paolomolo Oct 28, 2025
f879c36
docs(tutorial): add GitBook-ready README and SUMMARY
paolomolo Oct 28, 2025
29a6fb6
docs: archive outdated docs to docs/_archive
paolomolo Oct 28, 2025
3eb75c7
chore(docs): add mkdocs.yml with Material theme and nav
paolomolo Oct 28, 2025
986fcd6
build(docs): add requirements-docs.txt
paolomolo Oct 28, 2025
5d1f7bb
ci(docs): add GitHub Pages workflow for MkDocs
paolomolo Oct 28, 2025
2b4be78
docs: add local MkDocs serve instructions
paolomolo Oct 28, 2025
598a5f1
build(docs): move requirements to docs/requirements.txt
paolomolo Oct 28, 2025
60f3a36
chore(docs): add docs/netlify.toml for Netlify scoped builds
paolomolo Oct 28, 2025
14102d7
chore(docs): fix Netlify docs build to use python -m mkdocs
paolomolo Oct 28, 2025
b730c1b
chore(docs): remove github-admonitions plugin from MkDocs
paolomolo Oct 28, 2025
f8356a1
chore(docs): write MkDocs output to docs/site to match Netlify publis…
paolomolo Oct 28, 2025
7e077b7
chore(docs): fix MkDocs nav paths (remove docs/ prefix)
paolomolo Oct 28, 2025
5c6e804
chore(docs): build MkDocs to ../site and publish ../site (base=docs)
paolomolo Oct 28, 2025
3b00b85
chore(docs): add docs/mkdocs.yml to anchor build in docs base
paolomolo Oct 28, 2025
714ac59
chore(docs): use docs/mkdocs.yml with site output to docs/site
paolomolo Oct 28, 2025
90bdea3
chore(docs): set docs_dir=. in docs/mkdocs.yml and dedupe search plugin
paolomolo Oct 28, 2025
87e69ff
chore(docs): remove docs/mkdocs.yml (keep root mkdocs.yml)
paolomolo Oct 28, 2025
f71a525
chore(docs): remove docs/netlify.toml (use UI config with base=root)
paolomolo Oct 28, 2025
8951580
chore(docs): add docs/netlify.toml and mkdocs-docs.yml for docs site
paolomolo Oct 28, 2025
0870790
chore(netlify): add conditional docs build to root netlify.toml
paolomolo Oct 28, 2025
92e06d2
chore(netlify): remove default publish from root netlify.toml
paolomolo Oct 28, 2025
7046b75
chore(netlify): improve conditional build check and add debug echos
paolomolo Oct 28, 2025
addf2b3
docs(mkdocs): convert GitHub-style callouts to Material admonitions
paolomolo Oct 28, 2025
8859c42
docs(mkdocs): improve navigation and page titles
paolomolo Oct 28, 2025
6b3e88c
fix(mkdocs): update site_url to match Netlify domain
paolomolo Oct 28, 2025
ceb0ae5
fix(mkdocs): use relative URLs for domain flexibility
paolomolo Oct 28, 2025
3f156f9
fix(mkdocs): add proper index.md for home page
paolomolo Oct 29, 2025
138c45f
feat(mkdocs): move navigation to sidebar instead of tabs
paolomolo Oct 29, 2025
d24b2ff
docs(links): convert plain URLs to markdown links
paolomolo Oct 29, 2025
284c6bf
docs(tutorial): restructure hackathon guide into 8 concise pages
paolomolo Oct 29, 2025
c6173c0
chore(docs): ignore local venvs and MkDocs build outputs
paolomolo Oct 29, 2025
e34f8d7
docs(tutorial): prefer aeproject as default dev workflow
paolomolo Oct 29, 2025
e74e452
docs(nav): remove (aeproject) from sidenav labels
paolomolo Oct 29, 2025
b2cbacf
docs(tutorial): clarify separate contracts repo vs Superhero UI repo
paolomolo Oct 29, 2025
c893c73
docs(setup): add direct link to æternity testnet faucet
paolomolo Oct 29, 2025
3195bb4
docs(tests): fix code block rendering in SDK + Vitest example
paolomolo Oct 29, 2025
6736dd2
docs(markdown): fix bullet list rendering after paragraphs/code fences
paolomolo Oct 29, 2025
2084ebf
docs(integrate): specify exact file paths and registration for plugin…
paolomolo Oct 29, 2025
3412067
docs(quickstart): add AI-assisted Cursor bootstrap prompt for full setup
paolomolo Oct 29, 2025
3c57a99
Merge remote-tracking branch 'origin/develop' into feat/feed-plugin-a…
paolomolo Oct 30, 2025
250c6b0
chore(merge): merge develop into feat/feed-plugin-architecture
paolomolo Nov 4, 2025
1572bc5
feat(i18n): update plugin structure to use multi-lang files
paolomolo Nov 4, 2025
7a7c51c
feat(plugin-sdk): add plugin translation support
paolomolo Nov 4, 2025
0c3339a
feat(plugins): register plugin translations automatically
paolomolo Nov 4, 2025
f8e50e0
feat(plugin): add translations to poll-created plugin
paolomolo Nov 4, 2025
b910c6d
docs(plugins): add plugin translation documentation
paolomolo Nov 4, 2025
8d0b462
fix(plugin): deduplicate polls when combining open and closed lists
paolomolo Nov 4, 2025
c6a043b
chore(merge): merge feat/feed-plugin-architecture into feat/hackathon…
paolomolo Nov 4, 2025
0b018f1
docs(tutorial): add plugin translations section to hackathon tutorial
paolomolo Nov 4, 2025
24246cb
docs(tutorial): update hackathon tutorial
paolomolo Nov 4, 2025
1a6c00c
fix(netlify): prevent edge function from processing MkDocs pages
paolomolo Nov 4, 2025
01d19b9
Merge pull request #251 from superhero-com/feat/hackathon-tutorial
paolomolo Nov 4, 2025
4f7c29e
fix(poll): correct progress bar width when poll has no votes
paolomolo Nov 4, 2025
aa134fd
fix(plugins): use 'menu' capability instead of 'routes' for menu regi…
paolomolo Nov 4, 2025
9e6d7bd
fix(ext-check): exclude locale files from plugin index checks
paolomolo Nov 5, 2025
67623ea
fix(ext-check): refine locale file exclusion in plugin index checks
paolomolo Nov 5, 2025
ec39a55
refactor(MobileAppHeader): replace dynamic navigation item retrieval …
paolomolo Nov 5, 2025
198d572
refactor(MobileAppHeader): optimize navigation items retrieval with u…
paolomolo Nov 5, 2025
7ccd9c1
refactor(plugin): remove unused template plugin files
paolomolo Nov 5, 2025
aeeff81
refactor(PostForm): update currentBlockHeight handling and dependencies
paolomolo Nov 5, 2025
4c754d9
fix(plugin-sdk): add currentBlockHeight to ComposerAttachmentCtx type
paolomolo Nov 5, 2025
e567d17
refactor(governance): remove unused setActiveTab prop from Governance…
paolomolo Nov 5, 2025
86a77bd
fix(ssr): update routes import to use getRoutes() function
paolomolo Nov 5, 2025
44c7ae2
perf(header): memoize navigationItems in WebAppHeader
paolomolo Nov 5, 2025
83627ae
Merge branch 'origin/develop' into feat/feed-plugin-architecture
paolomolo Nov 20, 2025
3f8a62c
refactor(PostForm): simplify focus type definition and clean up imports
paolomolo Nov 20, 2025
39099d9
refactor(PostForm): enhance component structure and improve type hand…
paolomolo Nov 20, 2025
c175bae
feat(governance): update poll plugin to use new governance endpoints
paolomolo Nov 20, 2025
01d3b5a
feat(governance): migrate all components to use new governance endpoints
paolomolo Nov 20, 2025
83fc3cb
refactor(governance): remove unused standalone governance pages
paolomolo Nov 20, 2025
94fa791
fix(poll): fix rebuildFromOverview reference in PollDetail
paolomolo Nov 20, 2025
1d9885f
feat(poll): trigger connect wallet modal when voting without wallet
paolomolo Nov 20, 2025
bb84258
feat(feed): add poll items support to popular feed
paolomolo Nov 21, 2025
310f89f
fix(feed): remove duplicate useAeSdk import
paolomolo Nov 21, 2025
b345f4a
fix(social): add null checks for poll content parsing
paolomolo Nov 21, 2025
7f1de3d
Merge pull request #372 from superhero-com/feature/add-polls-to-popul…
paolomolo Nov 21, 2025
5a6bd2e
chore(ci): remove redundant GitHub Pages workflow for docs
paolomolo Nov 21, 2025
9d00e5d
docs: replace MkDocs with Mintlify
paolomolo Nov 21, 2025
772d041
docs: fix Mintlify logo, page titles, and convert MkDocs admonitions
paolomolo Nov 21, 2025
1626f86
docs: remove number prefixes from markdown filenames
paolomolo Nov 21, 2025
7cdf587
docs: fix duplicate titles and update Mintlify theme colors
paolomolo Nov 21, 2025
cf0706e
docs: add comprehensive plugin architecture documentation
paolomolo Nov 21, 2025
b36a271
docs: improve references page and clean up index
paolomolo Nov 21, 2025
c782fd7
docs: separate contract and plugin development in navigation
paolomolo Nov 21, 2025
1cbdacb
docs: improve resources section and update terminology
paolomolo Nov 21, 2025
1b82190
docs: split setup into multiple pages and add MCP configuration
paolomolo Nov 21, 2025
5498aa6
docs: fix broken links, improve cross-linking, and add MCP tip
paolomolo Nov 21, 2025
52eb1c7
docs: improve Configure Cursor page and add MCP documentation access …
paolomolo Nov 21, 2025
c0e2faa
docs: improve quickstart page with MCP emphasis and better accuracy
paolomolo Nov 21, 2025
77a50d1
docs: improve quickstart prompt and add backend setup documentation
paolomolo Nov 21, 2025
f5079ca
docs: improve backend API description in quickstart prompt
paolomolo Nov 21, 2025
33cd8ae
docs: configure GitHub Pages deployment and fix links
paolomolo Nov 21, 2025
d095f9d
fix: resolve port conflicts between services
paolomolo Nov 21, 2025
837dcad
docs: rename LOCAL_SETUP.md to README.md and improve content
paolomolo Nov 21, 2025
aa2bddc
docs: remove overview.md and link to index instead
paolomolo Nov 21, 2025
3c29076
fix: remove npm cache from docs deployment workflow
paolomolo Nov 21, 2025
97a7519
Merge pull request #374 from superhero-com/feat/replace-mkdocs-with-m…
paolomolo Nov 21, 2025
ccb8e32
feat(AeEthBridge): update labels to use translation keys for improved…
paolomolo Nov 21, 2025
3df75ee
fix(merge): resolve conflicts with develop branch
paolomolo Nov 21, 2025
fa1ed31
merge(develop): merge develop branch into feat/feed-plugin-architecture
paolomolo Nov 21, 2025
840b705
fix(gitignore): add Mintlify build artifacts to ignore patterns
paolomolo Nov 21, 2025
2751729
fix(merge): remove remaining conflict markers from ReplyToFeedItem
paolomolo Nov 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions .github/workflows/deploy-docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Deploy Documentation to GitHub Pages

on:
push:
branches:
- main
paths:
- 'docs/**'
- '.github/workflows/deploy-docs.yaml'
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build-and-deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install Mintlify CLI
run: npm install -g mintlify@latest

- name: Build documentation
run: |
cd docs
mintlify build
# Ensure .nojekyll is present for GitHub Pages
touch .mintlify/dist/.nojekyll

- name: Setup Pages
uses: actions/configure-pages@v4

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: './docs/.mintlify/dist'

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

18 changes: 18 additions & 0 deletions .github/workflows/ext-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Extensions Check

on:
pull_request:
branches: [ "*" ]

jobs:
ext-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
- run: npm ci
- run: npm run ext:check


23 changes: 22 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,28 @@ external/superhero-ui-vue-for-reference/node_modules/
# Banner suggestions (design mockups)
banner-suggestions/

# Python virtual environment for docs
# --- Python docs tooling ---
# Local virtual environments
.venv/
.venv-*/
venv/
venv-*/
.venv-docs/
docs/.venv/
docs/venv/

# Documentation build outputs (legacy MkDocs - kept for reference)
site/
docs/site/
site-docs/

# Mintlify build artifacts (generated by `mintlify build`)
.mintlify/
docs/.mintlify/

# Python caches
__pycache__/
*.pyc
.pytest_cache/


9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,15 @@ This app is a static site once built. You can deploy the `dist/` directory to an
- Netlify configuration is included: `netlify.toml` and `public/_redirects` for SPA routing
- Typical build settings: build command `npm run build`, publish directory `dist`

## Extending with Plugins

See `docs/plugin-sdk.md` for the public plugin SDK. It covers:

- Feed plugins (new entry kinds)
- Composer actions and attachments (inline panels such as Poll)
- Item actions, routes and modals
- Runtime loading and capability gating

## Contributing

1. Create a feature branch from `main`
Expand Down
Empty file added docs/.nojekyll
Empty file.
73 changes: 73 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Superhero Documentation

**Live Documentation**: [docs.superhero.com](https://docs.superhero.com)

This directory contains the source files for the Superhero plugin development documentation, built with [Mintlify](https://mintlify.com).

## Run Documentation Locally

To preview the documentation locally during development:

```bash
# Install Mintlify CLI globally (requires Node.js v19+)
npm i -g mintlify

# Start local development server
cd docs
mintlify dev --port 3002
```

The documentation will be available at `http://localhost:3002`.

### Build Static Files

To build the documentation for production:

```bash
cd docs
mintlify build
```

The static files will be generated in `docs/.mintlify/dist/`.

## Deployment

The documentation is automatically deployed to GitHub Pages at `docs.superhero.com` when changes are pushed to the `main` branch.

### Automatic Deployment

The GitHub Actions workflow (`.github/workflows/deploy-docs.yaml`) automatically:
- Builds the documentation using Mintlify
- Deploys to GitHub Pages on pushes to `main` that affect the `docs/` directory
- Supports manual deployment via Actions → "Deploy Documentation to GitHub Pages" → Run workflow

### GitHub Pages Setup

To enable GitHub Pages deployment:

1. **Enable GitHub Pages** in repository settings:
- Go to Settings → Pages
- Source: GitHub Actions
- Custom domain: `docs.superhero.com` (optional)

2. **Configure Custom Domain** (if using `docs.superhero.com`):
- Add a CNAME record pointing `docs.superhero.com` to `your-org.github.io`
- Or add an A record pointing to GitHub Pages IP addresses
- Enable "Enforce HTTPS" in GitHub Pages settings

## Documentation Structure

- `mint.json` - Mintlify configuration (navigation, branding, etc.)
- `tutorials/hackathon/` - Plugin development tutorials and guides
- `plugin-sdk.md` - Plugin SDK API reference
- `index.md` - Main documentation landing page

## Contributing

When contributing to the documentation:

1. Edit the Markdown files in this directory
2. Test locally using `mintlify dev --port 3002`
3. Commit changes to `main` branch to trigger automatic deployment
4. Verify deployment at `docs.superhero.com`

79 changes: 79 additions & 0 deletions docs/_archive/EXTENSIONS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Superhero App Extensions

> [!NOTE]
> For a step-by-step walkthrough, see [How to build a Superhero App Extension (Polls example)](./tutorials/build-governance-poll-extension.md).

Extensions are first-class modules that can add routes, menu items, feed entries, composer actions, item actions, modals, and composer attachments. They are authored with the existing plugin SDK and loaded at runtime.

## Capabilities
- routes: add pages (mounted dynamically via routeRegistry)
- menu: add header navigation items (merged via navRegistry)
- feed: contribute feed entries and renderers
- composer: add composer actions and attachments
- item-actions: add per-feed-item actions
- modals: register modal components

## Authoring an extension
Minimal example:
```tsx
import React from 'react';
import { definePlugin } from '@/plugin-sdk';
import MyApp from './ui/MyApp';

export default definePlugin({
meta: {
id: 'my-ext',
name: 'My Extension',
version: '0.1.0',
apiVersion: '1.x',
capabilities: ['routes', 'menu', 'composer'],
},
setup({ register }) {
register({
routes: [{ path: '/my-ext', element: <MyApp /> }],
menu: [{ id: 'my-ext', label: 'My Ext', path: '/my-ext', icon: '🧩' }],
// attachments: () => [myAttachmentSpec],
});
},
});
```

## Loading modes
- Local (first‑party): register in `src/plugins/local.ts` for development. Not enabled by default in production.
- External (remote URLs): `CONFIG.PLUGINS` can point to remote modules. The loader enforces the `capabilities` allowlist.

## Capability allowlist
- Use `CONFIG.PLUGIN_CAPABILITIES_ALLOWLIST` to restrict what plugins may register, e.g. `['routes','feed','composer']`.

## Registries lifecycle
- Registries live in `features/social/plugins/registries.ts`.
- In development, local loader resets registries on hot reload to avoid duplicates.
- Plugin bootstrap is guarded to run once per app lifecycle.

## Contracts
Use `createContractLoader(sdk)` from `src/extensions/contract.ts` to load ACI-based contract instances.

## Backend integration
Point your extension to backend services. For Social Superhero governance backend, see:
- repo: https://github.com/superhero-com/superhero-api
- flow: index chain data → expose REST/WebSocket → consume from extension client

## Environment & config
- `public/superconfig.json` (or `window.__SUPERCONFIG__`) provides runtime keys like `NODE_URL`, `MIDDLEWARE_URL`, `GOVERNANCE_API_URL`, `PLUGINS`, `PLUGIN_CAPABILITIES_ALLOWLIST`.

## CI
- `npm run ext:check` validates extension modules. The CI workflow runs it on pull requests.

## Security & UX notes
- Keep capabilities minimal; prefer read-only routes for untrusted plugins.
- Gating composer/actions behind the allowlist reduces risk.
- Validate inputs and handle network failures gracefully.

## Troubleshooting
- Duplicate nav or routes: ensure bootstrap runs once; in dev registries are reset before loading local plugins.
- Wallet not connected: ensure wallet connect flow completes before signing.
- ACI mismatch: recompile and update contract address.

## Full tutorial (Polls example)
See the detailed guide:
`docs/tutorials/build-governance-poll-extension.md`
26 changes: 26 additions & 0 deletions docs/_archive/backend-integration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Backend Integration for App Extensions

This guide explains how to integrate an extension with a backend service. For Social Superhero, we reference the `superhero-api` repository.

## When to use a backend
- Indexing historical data and building feeds
- Search and rich queries
- WebSocket push updates
- Off-chain validation

## Setup superhero-api
- Repo: https://github.com/superhero-com/superhero-api
- Quick start (Docker): see repository README
- Configure ENV in frontend: `VITE_EXT_<YOUR_EXT>_API_URL`

## Client in extension
Create a small client under `src/plugins/<id>/client/backend.ts` and read the base URL from `VITE_EXT_<ID>_API_URL` or runtime `__SUPERCONFIG__`.

## Patterns
- Pagination tokens instead of page numbers
- Idempotent POSTs, signed requests where needed
- WebSocket channels for live updates

## Error handling
- Map HTTP errors to user-friendly messages
- Retry with backoff
Loading