diff --git a/mcp/bigmind/bigmind/profile_builder.py b/mcp/bigmind/bigmind/profile_builder.py index 1d96921..6888c18 100644 --- a/mcp/bigmind/bigmind/profile_builder.py +++ b/mcp/bigmind/bigmind/profile_builder.py @@ -443,101 +443,120 @@ def compute_achievements(user_id: str) -> list[dict]: _add("first_breath", "🌱", "First Breath", "Opened the very first session", first_session_row is not None, _dt(first_session_row[0]) if first_session_row else None, - "Start your first session") + "Start your first session", + image="/static/achievements/first_breath.png") _add("first_thought", "🧠", "First Thought", "Formed the first hypothesis", first_hyp_row is not None, _dt(first_hyp_row[0]) if first_hyp_row else None, - "Add your first hypothesis") + "Add your first hypothesis", + image="/static/achievements/first_thought.png") _add("eureka", "💡", "Eureka", "First hypothesis confirmed as true", first_confirmed_row is not None, _dt(first_confirmed_row[0]) if first_confirmed_row else None, - "Confirm your first hypothesis") + "Confirm your first hypothesis", + image="/static/achievements/eureka.png") _add("honest_mind", "❌", "Honest Mind", "First hypothesis refuted — being wrong is a feature", first_refuted_row is not None, _dt(first_refuted_row[0]) if first_refuted_row else None, - "Have a hypothesis refuted") + "Have a hypothesis refuted", + image="/static/achievements/honest_mind.png") _add("scholar", "📚", "Scholar", "Stored 25+ personal facts", fact_count >= 25, scholar_date, - f"Store 25+ facts (currently: {fact_count})") + f"Store 25+ facts (currently: {fact_count})", + image="/static/achievements/scholar.png") _add("deep_knowledge", "💎", "Deep Knowledge", "Amassed 100+ stored facts", fact_count >= 100, deep_knowledge_date, - f"Store 100+ facts (currently: {fact_count})") + f"Store 100+ facts (currently: {fact_count})", + image="/static/achievements/deep_knowledge.png") _add("scientist", "🔬", "Scientist", "Formed 10+ hypotheses — science is prediction", hyp_count >= 10, scientist_date, - f"Form 10+ hypotheses (currently: {hyp_count})") + f"Form 10+ hypotheses (currently: {hyp_count})", + image="/static/achievements/scientist.png") _add("veteran", "🏆", "Veteran", "Completed 50+ sessions — true longevity", session_count >= 50, veteran_date, - f"Complete 50+ sessions (currently: {session_count})") + f"Complete 50+ sessions (currently: {session_count})", + image="/static/achievements/veteran.png") _add("on_fire", "🔥", "On Fire", "5+ sessions in a single day", on_fire_row is not None, on_fire_row[0] if on_fire_row else None, - "Have 5+ sessions in a single day") + "Have 5+ sessions in a single day", + image="/static/achievements/on_fire.png") _add("storyteller", "📖", "Storyteller", "20+ sessions with detailed Tier-2 summaries", tier2_count >= 20, storyteller_date, - f"Summarize 20+ sessions (currently: {tier2_count})") + f"Summarize 20+ sessions (currently: {tier2_count})", + image="/static/achievements/storyteller.png") _add("night_owl", "🌙", "Night Owl", "Started a session after midnight UTC", night_owl_row is not None, _dt(night_owl_row[0]) if night_owl_row else None, - "Start a session after midnight") + "Start a session after midnight", + image="/static/achievements/night_owl.png") _add("speed_thinker", "⚡", "Speed Thinker", "Hypothesis formed and confirmed in the same session", speed_thinker_row is not None, _dt(speed_thinker_row[0]) if speed_thinker_row else None, - "Form and confirm a hypothesis in one session") + "Form and confirm a hypothesis in one session", + image="/static/achievements/speed_thinker.png") # First Handshake — hardcoded: 2026-03-31 (Patrick shared BigMind with Elias) _add("first_handshake", "🤝", "First Handshake", "BigMind shared with Elias on 2026-03-31 — the first person outside Patrick to receive it", True, "2026-03-31", - "Share BigMind with someone") + "Share BigMind with someone", + image="/static/achievements/first_handshake.png") _add("birthday", "🎂", "Birthday", "One full year of existence", birthday_unlocked, birthday_date, birthday_extra or "Complete one full year", - extra=birthday_extra) + extra=birthday_extra, + image="/static/achievements/birthday.png") # Locked until Phase 3 _add("shared_mind", "🌍", "Shared Mind", "Phase 3 Tier G — BigMind goes company-wide", False, None, - "Locked until Phase 3 Tier G is enabled") + "Locked until Phase 3 Tier G is enabled", + image="/static/achievements/shared_mind.png") # Token achievements (Feature 6 — suggested by Klaus) _add("frugal_mind", "🪙", "Frugal Mind", "Logged the first token efficiency save", frugal_row is not None, _dt(frugal_row[0]) if frugal_row else None, - "Log your first token save") + "Log your first token save", + image="/static/achievements/frugal_mind.png") _add("quarter_million", "💰", "Quarter Million", "250,000 cumulative tokens saved", token_total >= 250_000, quarter_million_date, - f"Save 250,000+ tokens (currently: {token_total:,})") + f"Save 250,000+ tokens (currently: {token_total:,})", + image="/static/achievements/quarter_million.png") _add("token_millionaire", "🏦", "Token Millionaire", "1,000,000 cumulative tokens saved", token_total >= 1_000_000, millionaire_date, - f"Save 1,000,000+ tokens (currently: {token_total:,})") + f"Save 1,000,000+ tokens (currently: {token_total:,})", + image="/static/achievements/token_millionaire.png") _add("sniper", "🎯", "Sniper", "Single token save > 500,000 — one massive efficiency win", sniper_row is not None, _dt(sniper_row[0]) if sniper_row else None, - "Save 500,000+ tokens in a single operation") + "Save 500,000+ tokens in a single operation", + image="/static/achievements/sniper.png") # ── Tiered Achievement Badges (20 PNG) ──────────────────────────────────── # NOTE: conn is already closed above; open a fresh connection for tiered queries diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150257.png b/mcp/bigmind/bigmind/static/achievements/20260404_150257.png deleted file mode 100644 index 53b9bdd..0000000 Binary files a/mcp/bigmind/bigmind/static/achievements/20260404_150257.png and /dev/null differ diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150302.png b/mcp/bigmind/bigmind/static/achievements/20260404_150302.png deleted file mode 100644 index 539be40..0000000 Binary files a/mcp/bigmind/bigmind/static/achievements/20260404_150302.png and /dev/null differ diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150207.png b/mcp/bigmind/bigmind/static/achievements/birthday.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150207.png rename to mcp/bigmind/bigmind/static/achievements/birthday.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150106.png b/mcp/bigmind/bigmind/static/achievements/deep_knowledge.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150106.png rename to mcp/bigmind/bigmind/static/achievements/deep_knowledge.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150053.png b/mcp/bigmind/bigmind/static/achievements/eureka.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150053.png rename to mcp/bigmind/bigmind/static/achievements/eureka.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_145807.png b/mcp/bigmind/bigmind/static/achievements/first_breath.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_145807.png rename to mcp/bigmind/bigmind/static/achievements/first_breath.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150202.png b/mcp/bigmind/bigmind/static/achievements/first_handshake.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150202.png rename to mcp/bigmind/bigmind/static/achievements/first_handshake.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_145811.png b/mcp/bigmind/bigmind/static/achievements/first_thought.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_145811.png rename to mcp/bigmind/bigmind/static/achievements/first_thought.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150228.png b/mcp/bigmind/bigmind/static/achievements/frugal_mind.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150228.png rename to mcp/bigmind/bigmind/static/achievements/frugal_mind.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150057.png b/mcp/bigmind/bigmind/static/achievements/honest_mind.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150057.png rename to mcp/bigmind/bigmind/static/achievements/honest_mind.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150153.png b/mcp/bigmind/bigmind/static/achievements/night_owl.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150153.png rename to mcp/bigmind/bigmind/static/achievements/night_owl.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150126.png b/mcp/bigmind/bigmind/static/achievements/on_fire.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150126.png rename to mcp/bigmind/bigmind/static/achievements/on_fire.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150233.png b/mcp/bigmind/bigmind/static/achievements/quarter_million.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150233.png rename to mcp/bigmind/bigmind/static/achievements/quarter_million.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150101.png b/mcp/bigmind/bigmind/static/achievements/scholar.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150101.png rename to mcp/bigmind/bigmind/static/achievements/scholar.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150117.png b/mcp/bigmind/bigmind/static/achievements/scientist.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150117.png rename to mcp/bigmind/bigmind/static/achievements/scientist.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150224.png b/mcp/bigmind/bigmind/static/achievements/shared_mind.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150224.png rename to mcp/bigmind/bigmind/static/achievements/shared_mind.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150252.png b/mcp/bigmind/bigmind/static/achievements/sniper.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150252.png rename to mcp/bigmind/bigmind/static/achievements/sniper.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150158.png b/mcp/bigmind/bigmind/static/achievements/speed_thinker.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150158.png rename to mcp/bigmind/bigmind/static/achievements/speed_thinker.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150130.png b/mcp/bigmind/bigmind/static/achievements/storyteller.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150130.png rename to mcp/bigmind/bigmind/static/achievements/storyteller.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150238.png b/mcp/bigmind/bigmind/static/achievements/token_millionaire.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150238.png rename to mcp/bigmind/bigmind/static/achievements/token_millionaire.png diff --git a/mcp/bigmind/bigmind/static/achievements/20260404_150122.png b/mcp/bigmind/bigmind/static/achievements/veteran.png similarity index 100% rename from mcp/bigmind/bigmind/static/achievements/20260404_150122.png rename to mcp/bigmind/bigmind/static/achievements/veteran.png