Global footer: social + CL8Y/Kumbaya links below agent card; play-active-timecurve skill #232

Closed
opened 2026-05-21 09:32:20 +00:00 by PlasticDigits · 6 comments
PlasticDigits commented 2026-05-21 09:32:20 +00:00 (Migrated from gitlab.com)

Summary

Add a compact site-wide link ribbon at the bottom of every page that shows the global footer — placed below the collapsible AGENT CARD (AgentFooterCard) and above the indexer status row / fee-sinks panel. Include outbound links for community, repos, CL8Y liquidity, the bridge, and a play skill entry point for agents participating in the currently active TimeCurve sale.

Motivation

  • Humans and agents need one predictable place for YieldOmega socials and upstream CL8Y infra without hunting header/nav.
  • The agent card already orients contributors; a thin link row beneath it keeps machine-readable content separate from everyday outbound links.
  • Agents automating buys need a single skill that reflects live sale phase (pre-open / live / post-end) instead of choosing among play-timecurve-doubloon, play-timecurve-warbow, and script-with-timecurve-local ad hoc.
Label URL Notes
X https://x.com/yieldomega
Telegram https://t.me/yieldomega
GitLab https://gitlab.com/PlasticDigits/yieldomega User shorthand gitlab.com/yieldomega → org project path
GitHub https://github.com/PlasticDigits/yieldomega Mirror of main; matches existing GH_MAIN in AgentFooterCard
Buy CL8Y (Kumbaya) https://www.kumbaya.xyz/#/swap?outputCurrency=0xfBAa45A537cF07dC768c469FfaC4e88208B0098D&confirmed=1 Same as CL8Y-web links.ts id kumbaya-megaeth (~/repos/CL8Y-web/src/data/links.ts)
CL8Y Bridge https://bridge.cl8y.com CL8Y-web CL8Y_BRIDGE_URL in src/lib/siteUrls.ts (marketing copy references cl8y.com/bridge; production bridge host is bridge.cl8y.com)
Play active TimeCurve TBD — new skill (see below) Raw Markdown on GitHub: skills/play-active-timecurve/SKILL.md (proposed path)

All external links: target="_blank", rel="noreferrer noopener", reuse existing .footer-link-pill styling where possible (issue #93 footer affordances).

UI placement

Primary: frontend/src/components/AgentFooterCard.tsx

  • New row after </article> (agent body) and before .app-footer__row--after-agent (indexer pill / governance).
  • Suggested structure: .app-footer__row.app-footer__row--site-links with icon+text or pill links; optional data-testid="footer-site-links".

Parity routes (footer hidden today):

Route Current behavior Follow-up in this issue
/timecurve (Simple) Global footer hidden (showFooter in RootLayout.tsx) Mirror the same link row under TimeCurveSimpleAgentCard or show a minimal global link strip without re-enabling full fee-sinks footer — product choice; document in PR
Launch countdown gate No header/footer (launch-countdown.spec.ts) Out of scope unless product wants links on countdown screen

Do not remove existing agent-card content (play skills list, indexer routes, Python sketches on Simple).

New play skill: play-active-timecurve (proposed)

Problem: Existing skills split by mechanic (play-timecurve-doubloon, play-timecurve-warbow, script-with-timecurve-local) and contributor bot skill (bots/timecurve/SKILL.md). None say “read chain/indexer now and follow the right playbook for this sale.”

Deliverable: Add skills/play-active-timecurve/SKILL.md derived from current sources (no new game rules):

  1. Phase detection (onchain authority): saleStart, deadline, ended, sale_ended / indexer GET /v1/timecurve/sale-state + chain-timer when VITE_INDEXER_URL set — align with #48 / ledgerSecIntForPhase.
  2. Branching table:
    • Pre-open → countdown / no buys; optional startSaleAt context (#114).
    • Live → link into play-timecurve-doubloon (buys, Kumbaya router #65) + play-timecurve-warbow when WarBow actions matter; script-with-timecurve-local for custom scripts.
    • Post-end → redeem / distribute gates (#55), no new buys.
  3. Env / addresses: MegaETH production proxy + router addresses already documented in TimeCurveSimpleAgentCard Python headers; Anvil/local → script-with-timecurve-local + bots/timecurve README.
  4. Safety: Cross-link why-yieldomega-participation-matters; no profit promises.

Index updates:

Optional: symlink/copy into .cursor/skills/ for IDE auto-suggest (same pattern as other play skills).

Acceptance criteria

  • Link ribbon visible on routes that render .app-footer (home, arena, protocol, referrals, 404, etc.).
  • /timecurve has equivalent outbound links (agent card area or agreed minimal strip).
  • Play skill file exists; footer links to raw GitHub Markdown URL.
  • Playwright: at least one spec asserts data-testid="footer-site-links" (or chosen test id) on a footer-enabled route.
  • Manual QA bullet in docs/testing/manual-qa-checklists.md (keyboard focus #97, mobile pills #93).
  • No secrets in links; AGPL headers on new TS if needed.

References

## Summary Add a compact **site-wide link ribbon** at the bottom of every page that shows the global footer — placed **below** the collapsible **AGENT CARD** (`AgentFooterCard`) and **above** the indexer status row / fee-sinks panel. Include outbound links for community, repos, CL8Y liquidity, the bridge, and a **play skill** entry point for agents participating in the **currently active** TimeCurve sale. ## Motivation - Humans and agents need **one predictable place** for YieldOmega socials and upstream CL8Y infra without hunting header/nav. - The agent card already orients contributors; a **thin link row beneath it** keeps machine-readable content separate from everyday outbound links. - Agents automating buys need a **single skill** that reflects **live sale phase** (pre-open / live / post-end) instead of choosing among `play-timecurve-doubloon`, `play-timecurve-warbow`, and `script-with-timecurve-local` ad hoc. ## Link targets (canonical URLs) | Label | URL | Notes | |-------|-----|-------| | X | https://x.com/yieldomega | | | Telegram | https://t.me/yieldomega | | | GitLab | https://gitlab.com/PlasticDigits/yieldomega | User shorthand `gitlab.com/yieldomega` → org project path | | GitHub | https://github.com/PlasticDigits/yieldomega | Mirror of `main`; matches existing `GH_MAIN` in `AgentFooterCard` | | Buy CL8Y (Kumbaya) | https://www.kumbaya.xyz/#/swap?outputCurrency=0xfBAa45A537cF07dC768c469FfaC4e88208B0098D&confirmed=1 | Same as CL8Y-web `links.ts` id `kumbaya-megaeth` ([`~/repos/CL8Y-web/src/data/links.ts`](https://github.com/PlasticDigits/CL8Y-web/blob/main/src/data/links.ts)) | | CL8Y Bridge | https://bridge.cl8y.com | CL8Y-web `CL8Y_BRIDGE_URL` in `src/lib/siteUrls.ts` (marketing copy references `cl8y.com/bridge`; production bridge host is `bridge.cl8y.com`) | | **Play active TimeCurve** | TBD — new skill (see below) | Raw Markdown on GitHub: `skills/play-active-timecurve/SKILL.md` (proposed path) | All external links: `target="_blank"`, `rel="noreferrer noopener"`, reuse existing `.footer-link-pill` styling where possible ([issue #93](https://gitlab.com/PlasticDigits/yieldomega/-/issues/93) footer affordances). ## UI placement **Primary:** [`frontend/src/components/AgentFooterCard.tsx`](frontend/src/components/AgentFooterCard.tsx) - New row **after** `</article>` (agent body) and **before** `.app-footer__row--after-agent` (indexer pill / governance). - Suggested structure: `.app-footer__row.app-footer__row--site-links` with icon+text or pill links; optional `data-testid="footer-site-links"`. **Parity routes (footer hidden today):** | Route | Current behavior | Follow-up in this issue | |-------|------------------|-------------------------| | `/timecurve` (Simple) | Global footer hidden (`showFooter` in [`RootLayout.tsx`](frontend/src/layout/RootLayout.tsx)) | Mirror the same link row under [`TimeCurveSimpleAgentCard`](frontend/src/pages/timecurve/TimeCurveSimpleAgentCard.tsx) **or** show a minimal global link strip without re-enabling full fee-sinks footer — product choice; document in PR | | Launch countdown gate | No header/footer ([`launch-countdown.spec.ts`](frontend/e2e/launch-countdown.spec.ts)) | **Out of scope** unless product wants links on countdown screen | Do **not** remove existing agent-card content (play skills list, indexer routes, Python sketches on Simple). ## New play skill: `play-active-timecurve` (proposed) **Problem:** Existing skills split by mechanic (`play-timecurve-doubloon`, `play-timecurve-warbow`, `script-with-timecurve-local`) and contributor bot skill (`bots/timecurve/SKILL.md`). None say “read chain/indexer **now** and follow the right playbook for **this** sale.” **Deliverable:** Add [`skills/play-active-timecurve/SKILL.md`](skills/play-active-timecurve/SKILL.md) derived from current sources (no new game rules): 1. **Phase detection (onchain authority):** `saleStart`, `deadline`, `ended`, `sale_ended` / indexer `GET /v1/timecurve/sale-state` + `chain-timer` when `VITE_INDEXER_URL` set — align with [#48](https://gitlab.com/PlasticDigits/yieldomega/-/issues/48) / `ledgerSecIntForPhase`. 2. **Branching table:** - *Pre-open* → countdown / no buys; optional `startSaleAt` context ([#114](https://gitlab.com/PlasticDigits/yieldomega/-/issues/114)). - *Live* → link into `play-timecurve-doubloon` (buys, Kumbaya router [#65](https://gitlab.com/PlasticDigits/yieldomega/-/issues/65)) + `play-timecurve-warbow` when WarBow actions matter; `script-with-timecurve-local` for custom scripts. - *Post-end* → redeem / distribute gates ([#55](https://gitlab.com/PlasticDigits/yieldomega/-/issues/55)), no new buys. 3. **Env / addresses:** MegaETH production proxy + router addresses already documented in `TimeCurveSimpleAgentCard` Python headers; Anvil/local → `script-with-timecurve-local` + `bots/timecurve` README. 4. **Safety:** Cross-link `why-yieldomega-participation-matters`; no profit promises. **Index updates:** - [`skills/README.md`](skills/README.md) — add row to play-skills table. - [`AgentFooterCard.tsx`](frontend/src/components/AgentFooterCard.tsx) `PLAY_SKILLS` + footer ribbon “Play active TimeCurve” → `ghBlob('skills/play-active-timecurve/SKILL.md')`. - [`docs/agents/metadata-and-skills.md`](docs/agents/metadata-and-skills.md) if we document third-party discovery there. Optional: symlink/copy into `.cursor/skills/` for IDE auto-suggest (same pattern as other play skills). ## Acceptance criteria - [ ] Link ribbon visible on routes that render `.app-footer` (home, arena, protocol, referrals, 404, etc.). - [ ] `/timecurve` has equivalent outbound links (agent card area or agreed minimal strip). - [ ] Play skill file exists; footer links to raw GitHub Markdown URL. - [ ] Playwright: at least one spec asserts `data-testid="footer-site-links"` (or chosen test id) on a footer-enabled route. - [ ] Manual QA bullet in [`docs/testing/manual-qa-checklists.md`](docs/testing/manual-qa-checklists.md) (keyboard focus #97, mobile pills #93). - [ ] No secrets in links; AGPL headers on new TS if needed. ## References - Global footer / Simple hide: [`docs/frontend/timecurve-views.md`](docs/frontend/timecurve-views.md) (global footer section), QA checklist C7. - Kumbaya integrator context: [`docs/integrations/kumbaya.md`](docs/integrations/kumbaya.md). - Existing play skills index: [`skills/README.md`](skills/README.md).
PlasticDigits commented 2026-05-21 12:06:27 +00:00 (Migrated from gitlab.com)

mentioned in commit 7b9f7364f4

mentioned in commit 7b9f7364f4c38c26c8a852abbb087df544354da7
PlasticDigits commented 2026-05-21 12:06:27 +00:00 (Migrated from gitlab.com)

mentioned in commit c6b5981a6c

mentioned in commit c6b5981a6cd49d4795f2bc178964d38e06c86a25
PlasticDigits commented 2026-05-21 12:07:32 +00:00 (Migrated from gitlab.com)

Implementation summary (GitLab #232)

Merged to main in 7b9f736 — global footer site link ribbon + play-active-timecurve agent skill.

What changed

  • FooterSiteLinks — shared pill row (X, Telegram, GitLab, GitHub, Buy CL8Y/Kumbaya, CL8Y Bridge, Play active TimeCurve) below agent-card body, above indexer/governance row.
  • AgentFooterCard + TimeCurveSimpleAgentCard — ribbon on footer routes; Simple mirrors links when global footer is hidden on /timecurve.
  • skills/play-active-timecurve/SKILL.md — phase router (pre-open / live / post-end) into existing play skills; no new game rules.
  • Docs: invariants INV-FRONTEND-232-*, INV-PLAY-232-ACTIVE-TIMECURVE, manual QA #232, timecurve-views, skills/README.md, guardrails §57.

Verification checklist

  • /referrals or /timecurve/arena: expand AGENT CARD → data-testid="footer-site-links" visible with seven pills.
  • Play active TimeCurve opens GitHub skills/play-active-timecurve/SKILL.md on main.
  • /timecurve: expand AGENT CARD: TimeCurve Simple → same ribbon inside card.
  • Keyboard Tab on pills shows focus ring (#97); mobile pills readable (#93).
  • Playwright: frontend/e2e/footer-site-links.spec.ts (2 tests) passes after npm run build.
  • Read skill: phase detection uses onchain saleStart / deadline / ended (indexer optional per #48).

@nullvector_ux — please verify UX placement and outbound URLs on a footer-enabled route and on /timecurve Simple agent card. Issue stays open until you sign off.

## Implementation summary (GitLab #232) Merged to `main` in **7b9f736** — global footer site link ribbon + **`play-active-timecurve`** agent skill. ### What changed - **`FooterSiteLinks`** — shared pill row (X, Telegram, GitLab, GitHub, Buy CL8Y/Kumbaya, CL8Y Bridge, Play active TimeCurve) below agent-card body, above indexer/governance row. - **`AgentFooterCard`** + **`TimeCurveSimpleAgentCard`** — ribbon on footer routes; Simple mirrors links when global footer is hidden on `/timecurve`. - **`skills/play-active-timecurve/SKILL.md`** — phase router (pre-open / live / post-end) into existing play skills; no new game rules. - Docs: invariants **`INV-FRONTEND-232-*`**, **`INV-PLAY-232-ACTIVE-TIMECURVE`**, manual QA [#232](docs/testing/manual-qa-checklists.md#manual-qa-issue-232), `timecurve-views`, `skills/README.md`, guardrails §57. ### Verification checklist - [ ] **`/referrals`** or **`/timecurve/arena`**: expand AGENT CARD → `data-testid="footer-site-links"` visible with seven pills. - [ ] **Play active TimeCurve** opens GitHub `skills/play-active-timecurve/SKILL.md` on `main`. - [ ] **`/timecurve`**: expand **AGENT CARD: TimeCurve Simple** → same ribbon inside card. - [ ] Keyboard Tab on pills shows focus ring (#97); mobile pills readable (#93). - [ ] Playwright: `frontend/e2e/footer-site-links.spec.ts` (2 tests) passes after `npm run build`. - [ ] Read skill: phase detection uses onchain `saleStart` / `deadline` / `ended` (indexer optional per #48). @nullvector_ux — please verify UX placement and outbound URLs on a footer-enabled route and on `/timecurve` Simple agent card. Issue stays **open** until you sign off.
nullvector_ux commented 2026-05-21 15:40:45 +00:00 (Migrated from gitlab.com)

Verification checklist @PlasticDigits

  • /referrals or /timecurve/arena: expand AGENT CARD → data-testid="footer-site-links" visible with seven pills.
  • Play active TimeCurve opens GitHub skills/play-active-timecurve/SKILL.md on main.
  • /timecurve: expand AGENT CARD: TimeCurve Simple → same ribbon inside card.
  • Keyboard Tab on pills shows focus ring (#97); mobile pills readable (#93).
  • (2 failed)Playwright: frontend/e2e/footer-site-links.spec.ts (2 tests) passes after npm run build.
  • Read skill: phase detection uses onchain saleStart / deadline / ended (indexer optional per #48).
### Verification checklist @PlasticDigits * [x] **`/referrals`** or **`/timecurve/arena`**: expand AGENT CARD → `data-testid="footer-site-links"` visible with seven pills. * [x] **Play active TimeCurve** opens GitHub `skills/play-active-timecurve/SKILL.md` on `main`. * [x] **`/timecurve`**: expand **AGENT CARD: TimeCurve Simple** → same ribbon inside card. * [x] Keyboard Tab on pills shows focus ring (#97); mobile pills readable (#93). * [ ] (2 failed)Playwright: `frontend/e2e/footer-site-links.spec.ts` (2 tests) passes after `npm run build`. * [x] Read skill: phase detection uses onchain `saleStart` / `deadline` / `ended` (indexer optional per #48).
Brouie commented 2026-05-22 02:35:03 +00:00 (Migrated from gitlab.com)

Re-ran the footer-site-links spec on the QA server (Ubuntu 24.04 LTS, Playwright 1.51.0, against 2c2948a).

After npm run build:

✓ /timecurve Simple shows site links card below agent card (GitLab #232) (1.1s) ✓ footer site links card on footer-enabled routes (GitLab #232) (817ms) 2 passed (2.3s)

So the footer-site-links spec passes cleanly on a supported environment. Nullvector's two failures look like the same Ubuntu 26.04 Chromium support gap from #209 — same root cause class as that earlier ticket, not a code regression. The #232 implementation itself is healthy.

With nullvector's 5 functional items PASS and the Playwright failure now explained as environment, this is clean from QA side and ready to close when you're ready @PlasticDigits.

Re-ran the footer-site-links spec on the QA server (Ubuntu 24.04 LTS, Playwright 1.51.0, against `2c2948a`). After `npm run build`: `✓ /timecurve Simple shows site links card below agent card (GitLab #232) (1.1s) ✓ footer site links card on footer-enabled routes (GitLab #232) (817ms) 2 passed (2.3s)` So the footer-site-links spec passes cleanly on a supported environment. Nullvector's two failures look like the same Ubuntu 26.04 Chromium support gap from #209 — same root cause class as that earlier ticket, not a code regression. The #232 implementation itself is healthy. With nullvector's 5 functional items PASS and the Playwright failure now explained as environment, this is clean from QA side and ready to close when you're ready @PlasticDigits.
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-05-22 05:39:45 +00:00
PlasticDigits commented 2026-05-22 06:29:39 +00:00 (Migrated from gitlab.com)

mentioned in issue #237

mentioned in issue #237
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/yieldomega#232
No description provided.