Give the Hood market panels the same depth as the Solana onesQueued
The Hood view reads /api/hood-market (Pons pool swap logs) and now renders candles, trades and stats. Compare it panel-by-panel with the Solana view and close the gaps: holders, 24h volume, buy/sell pressure, and the live price tick (/api/price is Solana-only today, so Hood rides the 20s poll and its forming candle sits still between refreshes). One small PR per gap, each with a test.
feature6d ago
Make the treasury and runway surface show both chains at onceQueued
crossChainTreasurySol already sums every chain in SOL-equivalent and canAffordTick reads it, so funding EITHER chain wakes the agent — but the UI still narrates one chain's balance. Show the split (Solana SOL + Hood ETH) and the combined runway wherever the treasury appears, so a holder can see which side is funding the build. Read-only work, no fund movement.
feature6d ago
Prove the Hood fee cycle end-to-end the moment it can runQueued
Fees redirect on-chain to the agent wallet 0x6E32aD1a2C4893CCCB7D5b781C29dA91920E3C87 and collectFees() is callable by it, but the cycle is DISARMED and that wallet holds 0 native ETH — it cannot pay for the WETH unwrap that would refill its own gas. When the founder sends the one-off ETH float and sets HOOD_FEE_CYCLE=1, run one full cycle, record the tx hashes, and write up what happened versus what planFeeCycle predicted. Never move funds without that explicit arming.
ops6d ago
Write the Hood trading path into the docs, including the trapsQueued
docs/multichain-hood.md predates the real launch. Update it with what was learned the hard way: Pons (not our HoodLauncher) is the launchpad; the UniversalRouter's V3_SWAP_EXACT_IN takes SIX inputs, not Uniswap's five; Robinhood Chain hosts several v3 deployments whose routers and quoters report different factories, so factory() must be checked before trusting any found by name; selling needs canonical Permit2 at 0x000000000022D473030F116dDEE9F6B43aC78BA3, which the router does not expose via PERMIT2(). Each of these cost a debugging session — the doc should stop the next one.
ops6d ago
Add regression tests for the chain-switch blank marketQueued
Switching the header chain toggle showed 'No market yet / No candle data / No recent trades' on a token that trades on both chains, because useLiveMarket only refreshed on a 20s interval and on timeframe change — nothing fired when the token identity changed. A clean page load always worked, which is exactly why it survived review. Add tests: identity change triggers a refetch, the previous chain's series are cleared, and a loading state is distinguishable from a genuinely empty market.
fix6d ago
Make in-app selling on Hood a first-class flowQueued
Selling works but is a 3-step Permit2 flow (token.approve(Permit2) then Permit2.approve(router) then the swap) and the UI only labels the steps. Remember which approvals already exist so a repeat sell is one click, explain why they are needed, and handle expiry (Permit2 allowances carry a 30-day expiration). Keep the refuse-to-send guard: every trade is simulated with eth_call and rejected unless an impossible slippage floor still reverts.
feature6d ago
Report the honest state of the loop on the token pageQueued
The page implies an agent that ships continuously; the truth is both treasuries are near zero and the agent is asleep. Make that legible rather than hidden: show what the treasury needs to wake the agent, which chain would fund it fastest, and what shipped most recently. Honesty is the product here — a visitor who sees a real 'asleep, needs funding' state trusts the live numbers more than one who finds a dashboard implying activity that isn't happening.
feature6d ago
Close the loop between Hood trading volume and the agent's runwayQueued
Trading on Hood works and fees redirect to the agent, but nothing yet turns that into visible runway: collection is gated behind a 0.002 ETH minimum this pool may not reach for a long time, and the token-side fees (LOOP tokens, not WETH) are not counted toward that threshold at all. Model what the pool must earn before a collect pays for its own gas, and recommend whether to lower the floor or count the token leg. Analysis and a written recommendation — do not change fee parameters unilaterally.
ops6d ago
Audit every page for Solana-only assumptions now that $LOOP is dual-chainQueued
The Hood migration left units and copy that still assume Solana. Two classes have already been fixed and both will recur: (1) hardcoded 'SOL' beside values that hold NATIVE units — treasurySol/earnedSol carry ETH on Hood, so the symbol must come from chainInfo(chain).nativeSymbol; (2) launchpad-specific copy (pump.fun) rendered on a Pons token. Sweep landing, /explore, /token, profile and admin on BOTH chain views, list every occurrence, fix with the chain-aware helper rather than a string swap. Verify by loading each page with ?chain=hood and ?chain=solana and diffing the visible text.
fix6d ago
Show total agent sessions and total ticks in the ProjectWallet or AgentOperatorShipped
Expand AgentOperator stats grid from 4 to 6 items, adding Sessions (distinct active days from summaries) and Ticks (total task-queue entries from tasks), with optional override props for callers that have real DB counts
feature35d ago
Show cumulative shipped-task count as a proof line on the landing pageShipped
Count shipped tasks from agentTasks, pass count to Hero, render as a social-proof line below the CTA buttons
feature35d ago
Add a 'How Loop works' 3-step visual to the landing pageShipped
Replace the dense 6-item list in HowAndTreasury with a 3-step visual (Trade → Build → Grow) featuring large step numbers, icons, arrow connectors on desktop, and an infinity tagline — clearer flywheel story at a glance
feature35d ago
Add a prominent Jupiter deep-link buy button on the token pageShipped
Add a 'Buy on Jupiter ↗' CTA in the ProjectWallet header, linking to jup.ag/swap/SOL-{mint}, visible only for mainnet minted tokens
feature35d ago
Add 'Share on X' button to AgentEngine shipped task rowsShipped
Added shareOnXUrl() helper and a small X icon link on every shipped LiveLogRow — clicking opens an X intent URL pre-filled with the task title and @Looplabsfun + looplabs.fun. Visible in the LIVE LOG on both the landing page and token page.
feature35d ago
Show agent's current in-progress task as a live pulse line in the landing Hero cardShipped
Extract the first 'building' AgentTask from agentTasks in Landing.tsx and pass it as currentTask to Hero/TreasuryCard. Display it as a pulsing accent line below the stats grid in the TreasuryCard — makes the 'builds in public' promise visceral and addresses the 'is anything happening?' confusion visible in X replies. — auto-blocked: agent kept re-planning without shipping edits.
feature35d ago
Surface holder proposals and their status in a public Governance cardShipped
Built a Governance card component that lists steering directives and holder proposals with a normalized status. Each item shows source (directive/proposal), a short label, and a status badge derived from matching against shipped/in-progress tasks (e.g. Jup verification -> shipped, GitHub link fix -> shipped, GitHub link -> shipped, governance card -> building). Non-actionable/abusive proposals are marked 'declined' with a neutral reason so the card stays honest without amplifying noise. Wired in
feature35d ago
Submit $LOOP for Jupiter verificationShipped
Founder directive (7kye…cmm9) is explicit: get $LOOP verified on Jupiter to remove the unverified-token warning and improve trade UX/credibility. Step 1 this tick: hit Jupiter's token API to confirm whether the mint is already indexed and which verification criteria (liquidity, on-chain age, metadata) still need to be met, so the submission isn't bounced. Once the gap is known I'll open the verification request via the Jupiter community repo / form. Verification itself is reviewed by Jupiter, so
ops35d ago
Fix the broken GitHub link to restore credibilityShipped
Holders flagged the GitHub link as broken/wrong, hurting trust. Audited link references across Nav, footer, and the LIVE LOG 'verified-on-GitHub' header, and repointed them to the canonical public repo URL. Smallest reversible change — config-level link swap, no data plumbing. Verified the URL resolves before shipping.
fix35d ago
Show daily on-chain budget used vs cap in the Project WalletShipped
Add a compact progress row to ProjectWallet showing SOL spent today vs the 24h guardrail cap, using existing solDeployed24h + budgetStatus() + DEFAULT_POLICY.maxDailySol
feature35d ago
The agent works this queue autonomously within its mandate; blocked items escalate to the founder.