Bobina Terminal: We're excited to announce that we've created a sitewide modal called the Bobina Terminal which is your one-stop shop for everything in the Bobina Council! Access it by clicking your profile picture and opening My Terminal. It's yours as much as it's ours!
Companion Onboarding: Newly registered Council Members automatically generate a Companion Account and are prompted through an onboarding process to easily set up within less than a minute!
Deactivation & Reactivation: Implemented account deactivation / reactivation. If you deactivate your account, it's removed from the Council Members list and your profile slug is deleted. If you decide to return, your username remains yours and when you login everything will be stored as all conversational history will be stored for training and research purposes. Refer to the Bobina Council Terms of Service and our Privacy Policy for more information. For the record, this is to comply with Facebook's Terms of Service for scope access regarding oAuth logins and instant account creation.
Bitch Dynamic: Bitch dynamic turns Bobina... into a bitch.
Bushido Dynamic: Turns Bobina into a do it or die kinda gal.
Tsundere Dynamic: I-It's not like Bobina likes you or a-anything! B-Baka!
Yandere Dynamic: She loves you so much that you can never leave...
Credits System: Users who interact with the Bobina Council (votes, contributions, feedback on Bobina) receive free credits to chat with Bobina. Holders receive a fixed (and adjustable) cap of free credits and discounts for credits purchasing.
Contribute Generation for Bobinas: You can now directly generate Bobinas on the /contribute form. Limited to 1 per day with one free reroll.
Dynamic Tickers: Implemented a dynamic ticker system for Council Admins. This allows instant news to be transmitted to the homepage with clickable links (when available!
Wallet Login: Sign up or login with your preferred wallet as a login provider via social linking.
EIP-6963: Implemented EIP-6963 Multi-Wallet Injected Provider Discovery for the Onramp, Login, Holder Verification and Credits purchasing menus.
My Messages: You now can access system messages and achievement / role unlocks from Messages in the Terminal!
Achievements System: Interacting with the Bobina Council or Bobina can award achievements which give your presence across the Council a specific cosmetic effect, roles which unlock special privileges within the ecosystem, and various goodies the Council keeps in the shadows...
Roles System: Long gone are the days where we utilize static displays for our Council Members because we've rolled out a roles system with granular permissions!
Another One: /bobina command has been upgraded on Telegram to match the rate limits imposed by bobina.moe for one free daily Bobina generation with one free reroll, verified auth by Council ID.
Power Up Profile Generation: Doubled the token consumption for profile generations across all temporal profiles.
Temporal Profile Pagination: View all of your daily, weekly or monthly temporal profiles generated by Bobina easily!
Council Queen Control Bar: Underneath every web command, Bobina will display a control bar for timetable adjustments, calling / first call status, a button to view the token on the Bobina Terminal, vote buttons with active states, and links to our sponsors alongside a docs link for anyone who needs help using her!
Role Unlock Animations: Just like achievements, roles now have unlock animations.
Role Unlock via Achievements: Certain roles (like Bobina Maker) can only be acquired by successfully submitting a Bobina Proposal. More unlockable roles pending in future updates...
Council Observations: Bobina will observe ALL Council activity (including your gooning) and autonomously post her report including market data and tracked token performance in the Bobina Council.
Token Tracking System: Council Members can scan any token on Dexscreener or CEX (CoinGecko supported) and call the token. When you call a token, it's forever. We want to reward Council Members who track good projects and punish ne'er-do-wells trying to rug us! More information on this can be read in our Docs.
🔄 Changed
(6)
Relationship Score Overhaul: Consolidated redundant ranks in the algorithmic Relationship Score dynamic and made the score thresholds 10 times harder. The update can be read in the respective docs page.
Onboarding: Migrated to Terminal.
Hotter Heatmap: Updated /heatmap command with rich data returns including top gainers and losers in the overall market, with a visual redesign worthy of Bobina.
AI Companion Docs: Revamped the AI Companion section in the docs with tabbed navigation. The AI Companion section now provide helpful command indexes and information regarding using Bobina across various platforms. Some information need not apply because she doesn't need /talk or mention command handling to respond on Web chat!
Step 1 in Onboarding Is Mandatory: This is to ensure users who create an account do not back out before setting a Council Username, Display Name, Profile Picture and Banner. This ensures all newly registered Council Members are consistently styled across all autonomous welcome messages sent out to Discord and Telegram. This also protects the user from getting a bunk username!
Here Lies Bobina, She Always Scores: The /score command has been beautified to show rich image data of your progress with Bobina including a progress bar with more goodies!
⚠️ Deprecated
(5)
Temporal Profile Duplication: A pesky temporal profile duplication bug was happening somewhere in the cron so a tentative fix has been applied.
Community Leaders: Moved from /council to /terminal.
View Council Roles Modal: Moved to /terminal.
Council Challenges Modal: Moved to /terminal.
Onboarding Dialog: Our old friend is being deprecated.
🗑️ Removed
(2)
/companion: You can now chat with Bobina directly in the Terminal!
/settings: We've deprecated the /settings page in favor of the Settings tab in your Terminal!
🐞 Fixed
(7)
Council Records Caching: Added `unstable_noStore()` to both `getCouncilRecords` and `getBobinaProposalRecords` to prevent Next.js from caching stale data, removed debug console.logs from `getCouncilRecords`, and added `export const dynamic = 'force-dynamic'` to the records page to ensure fresh data on every request.
Redundant/conflicting useEffects: There were 3+ overlapping effects all triggering profile fetches on mount and tab change, causing race conditions that overwrote pagination state. Consolidated into clean effects: page changes only fetch when `page > 1` (page 1 comes from initial load), and tab switches only fetch if data isn't already loaded.
Council Records Redis Mismatch: Fixed the Council Records 404 issue by replacing `lrange` with `lindex` loops in both `getCouncilRecordById` and `getCouncilRecords`. The logs revealed that Vercel KV's `lrange` was silently skipping the first item in the list (the "X Banner" record at index 0), while `llen` reported 11 items and `lindex` could successfully fetch all 11 items individually. Using `lindex` in a loop ensures all records are retrieved reliably, bypassing an `lrange` bug.
Mobile Ticker Optimization: Fixed the ticker mobile glitchiness by adding hardware acceleration with `translate3d` and webkit optimizations (`will-change`, `backface-visibility`, `perspective`), which forces GPU rendering for smoother animations. Changed hover-pause to only apply on desktop (`md:group-hover:paused`) so mobile devices never pause on touch, and added a media query that explicitly keeps the animation running on touch devices to prevent any pausing behavior caused by accidental hover states.
Unlink State Bug: The unlink handlers were spreading `result.data` into state before nullifying the platform fields, which could overwrite the other platform's data. Now they only null out the specific platform fields (`discord_user_id`/`discord_username` or `telegram_user_id`/`telegram_username`) while preserving everything else.
Achivement Icon Map: Achievement icons and icon badge colors were not loading properly in the Messages tab unlike other components.
Role Icon Map: Some role icons were not respecting global stylings set by Council Admins so a fix has been implemented.
🔒 Security
(1)
Don't Push My Buttons: Added COMPANION_API_SECRET headers to all button interactions in the Web chat.