Skip to content

Anonymize Quantinno/QFAF branding for public build with hidden reveal toggle#66

Merged
HouseofTyrell merged 1 commit into
mainfrom
claude/manager-name-anonymization-c5puc7
Jul 2, 2026
Merged

Anonymize Quantinno/QFAF branding for public build with hidden reveal toggle#66
HouseofTyrell merged 1 commit into
mainfrom
claude/manager-name-anonymization-c5puc7

Conversation

@HouseofTyrell

Copy link
Copy Markdown
Owner

What & why

For the general-public build, the specific manager brand Quantinno and its fund QFAF / Quantinno Fundamental Arbitrage Fund are now replaced with generic labels. Anonymized is the default; the real names can be revealed for internal use via a hidden trigger. Logged as D-029 in docs/DECISIONS.md.

Anonymized mapping

Real Public
Quantinno Manager
QFAF Fund
Quantinno Fundamental Arbitrage Fund (incl. (QFAF) gloss) Fundamental Arbitrage Fund

Bare-noun mapping is intentional so an article in the source prose flows through naturally ("the QFAF" → "the Fund", "Quantinno alpha" → "Manager alpha") while standalone labels stay clean ("QFAF Value" → "Fund Value", not "the Fund Value").

Hidden reveal toggle

Five rapid clicks on the workspace brand (.wx-brand) flip real names on/off, with a brief "Internal names on / Anonymized" confirmation. No cursor, tooltip, or ARIA affordance — undiscoverable to public users. State persists in localStorage (taxCalc:reveal-brand, default off).

How it works

  • src/branding.ts — the brandText() transform plus a global localStorage-backed reveal store built on useSyncExternalStore, so every subscribed component updates live with no page reload (in-progress inputs preserved).
  • src/hooks/useSecretReveal.ts — the click-sequence detector wired into WorkspaceTab.
  • getPopupContent() is the single chokepoint for all 55 popup strings; the remaining ~125 user-visible strings across components, formulas, Excel export, and the chart legend route through brandText().
  • Only display strings changed. Data-model field names, CSS classes, and CSV/Excel serialization keys keep the literal qfaf/quantinno spelling — so no new CalculatorInputs field was added and CSV/Excel round-trips are unaffected.

Verification

  • npm run build (tsc + vite) ✓
  • npm run test:run — 419/419 pass ✓
  • npm run lint — 0 errors ✓ · npm run format:check
  • Browser (Playwright): default view shows 0 "QFAF"/"Quantinno"; five clicks reveal the real names live and flash "Internal names on"; five more revert to anonymized.

Screenshots

Anonymized default shows "Fund On" chip / "Fund by" section; revealed state shows "QFAF On" and the "Internal names on" flash next to the brand.

🤖 Generated with Claude Code

https://claude.ai/code/session_01S9oJbhvHXD2pJqwobUyxno


Generated by Claude Code

… toggle

Public-facing default now shows generic labels — "Quantinno" -> Manager,
"QFAF" -> Fund, "Quantinno Fundamental Arbitrage Fund" -> Fundamental
Arbitrage Fund. Bare-noun mapping lets a preceding article flow through
naturally ("the QFAF" -> "the Fund") while standalone labels stay clean
("QFAF Value" -> "Fund Value").

- src/branding.ts: transform (brandText) + global localStorage-backed reveal
  store (useSyncExternalStore, default off) so every subscribed component
  updates live with no page reload.
- src/hooks/useSecretReveal.ts + WorkspaceTab: five rapid clicks on the brand
  flip real names on/off, with a brief confirmation. No affordance — hidden
  from public users.
- getPopupContent() is the single chokepoint for all 55 popup strings; other
  user-visible strings across components/formulas/Excel/chart legend route
  through brandText().
- Only display strings changed; data-model fields, CSS classes, and CSV/Excel
  serialization keys keep the literal qfaf/quantinno spelling, so no new
  CalculatorInputs field and CSV/Excel round-trips are unaffected.
- Documented as D-029 in docs/DECISIONS.md.

Build, 419 tests, lint (0 errors), and Prettier all pass; browser-verified
default anonymized state and the secret reveal toggle.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S9oJbhvHXD2pJqwobUyxno
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying enhanceddirectindexingcalc with  Cloudflare Pages  Cloudflare Pages

Latest commit: f2fe9a7
Status: ✅  Deploy successful!
Preview URL: https://98a68ef3.enhanceddirectindexingcalc.pages.dev
Branch Preview URL: https://claude-manager-name-anonymiz.enhanceddirectindexingcalc.pages.dev

View logs

@HouseofTyrell HouseofTyrell merged commit d3ed626 into main Jul 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants