James@James_Gets_It
Republic update - 1,038 commits since June 3rd.
The biggest upcoming update:
Raid campaigns that will turn regular UGC campaigns and targeted posts on socials into a force to be reckoned with.
Starting with our first campaign with $250 in rewards.
Stay tuned - announcement within next 72 hours.
Major Updates / Features
- Raid campaigns became a full campaign layer. The Republic now has a campaign object around raids instead of treating each raid as a mostly standalone target. Campaigns can carry status, start/end windows, guild/community scope, per-raid participation goals, reply budgets, talking points, reply variants, discovery settings, UGC settings, rewards, reports, and cache invalidation.
- The Raids page was redesigned around campaigns. The public Raids section now surfaces active campaigns, live raids, proof-needed counts, and campaign UGC counts. Selecting a campaign opens a campaign workspace with talking points, approved reply copy, UGC submission, campaign reports, reward pools, scheduled target discovery, and the current raid list.
- Campaign UGC submissions were added. Members can submit campaign content as posts, replies, quotes, threads, videos, or other assets. Submissions can include a content URL, supporting proof URL, caption/context, submission type, review state, and reward eligibility metadata.
- Admin campaign UGC review was added. Campaign managers now have approve, reject, and promote-to-raid flows for campaign submissions. Approvals make UGC eligible for the UGC reward pool; rejections record the reason and exclude the submission from reward eligibility.
- Approved UGC can now become a real raid. The “Make raid” workflow promotes a UGC submission into a campaign-linked `active_raids` record. Promoted raids preserve campaign context, source submission ID, source user ID, participation goal, requirements, talking points, reply variants, and reward/report linkage.
- Raid campaigns now support public rating mechanics through proof requirements. Native in-app peer rating is not yet a product surface, but the new campaign loop supports rating by requiring raiders to publicly reply to promoted UGC on X, submit the reply URL, upload screenshot proof, and include structured rating text.
- A Squid Allocation Review raid campaign plan was drafted. The launch plan turns Squid allocation results into a public review sprint: members post allocation/review content, submit it as campaign UGC, managers promote the best posts into raids, raiders rate/amplify those posts, and UGC, raid proof, metrics, and rewards roll into one campaign report.
- Scheduled discovery for campaign raid targets was built out. Campaign discovery settings can sync watched handles, include/exclude keywords, reply/retweet/quote exclusions, polling intervals, cooldowns, and participation goals into raid targets. This creates a path for campaigns to keep finding new raid targets without hand-creating each one.
- Raid automation now understands campaign-linked targets. The worker can poll X in time windows, respect per-target keyword filters, apply dedupe/cooldown rules, queue campaign candidates for review, or create campaign-linked raids with the right campaign title, goal, talking points, requirements, and reply variants.
- Tenant and Legion raid automation paths were separated. Tenant-scoped targets can be batched separately from Legion-wide targets, with independent polling cadence, persisted window cursors, X API end-time lag handling, and rate-limit backoff.
- Campaign discovery can queue review candidates instead of auto-creating everything. Campaign-linked automation can route discovered tweets into a pending review queue, giving managers control over which discovered targets should actually become raids.
- Campaign reports were expanded. Campaign reports now aggregate linked raids, proof status, approved proof counts, reply URLs, screenshot counts, UGC totals, approved/rejected UGC, known impressions, known engagement, reward pools, and completed reward runs.
- Campaign metric ingestion was added. Campaign operators can ingest engagement metrics for raid and UGC URLs so campaign reports can show impressions, likes, replies, reposts, quotes, bookmarks, total engagements, and engagement rate when metrics are available.
- Campaign reward pools were added. Campaigns can run separate raid participant pools, UGC creator pools, and combined pools. Reward rules support ticket weights, impression/engagement ticket multipliers, minimum metrics, per-user ticket caps, campaign budget caps, winner counts, repeat-winner settings, and linked loot campaign IDs.
- Campaign reward execution now creates raffle-style replay records. Reward runs can snapshot eligible entries, draw winners, write activity raffle run records, create viewer receipts, attach prizes, and notify users with replay links.
- The Squid campaign report and public route were built. The report generator now publishes a public Squid campaign page, reuses prior X search cache, fetches only missing windows, writes JSON/HTML/CSV artifacts, and includes both Republic-linked and broader X campaign activity.
- The latest Squid report captured concrete campaign reach. The July 3 report counted 3,803 Squid X search tweets, 627 Republic-linked search tweets, 2,270,823 known X impressions, 222,745 Republic-linked known impressions, 243 raid proof submissions, 122 unique submitted tweet URLs, 10 community submissions, and 68 users who completed all three Squid quests.
- Squid sale runtime work was promoted. The Squid sale conquest/reporting lane was moved into runtime/public-facing paths, with a public report route and supporting data artifacts.
- Sale allocation and raffle flows were improved. Targeted sale allocation notices, minimum allocation enforcement, raffle commitment stats, existing VP commitment display, Squid raffle commit-tab visibility, and raffle modal layout were added or corrected.
- Opportunities moved deeper into the Home experience. The Opportunities surface was brought into the Home dashboard, made more data-dense, and adjusted for responsive layouts. The CarrotFunding opportunity banner was added.
- No-Discord public community boards were enabled. Public community boards can now work for communities that do not have a Discord invite or Discord-backed community setup, with copy and CTA behavior adjusted accordingly.
- Public community and tenant setup flows were hardened. Interfold tenant guild selection and guild application validation were fixed, and admins can be granted access for pending Discord installs.
- Home dashboard reliability continued improving. Home layout, overlay loading, skeleton states, current raid loading, long-lived tab recovery, stale app-state recovery, and responsive dashboard behavior were improved.
- Database/read-reduction work continued. Home raid card reads, squad lobby reads, open squad bootstrap reads, activity raffle reads, consensus review author reads, notification panel scans, and repeated progression/access reads were reduced or cached more carefully.
- Access and identity linking were tightened. Legion UID linking now refreshes relevant caches after link, X OAuth link state persists more reliably, stale Republic progression snapshots recover, and legacy home Discord promotion settings are honored.
- Squad operations kept improving. Squad invite links, invite exhaustion, invite code normalization, stale squad membership cleanup, stale leader ID cleanup, squad leave handling, squad mission progress overlays, and squad quest mission report CTAs were fixed or improved.
- Raid proof UX was hardened. Raid instructions now render richer Markdown content, custom requirement fields have stronger labels, proof image uploads are more defensive, proof issue panels are announced correctly, and Discord raider role mentions were fixed.
- Raid navigation and home labels were cleaned up. Raid sidebar navigation was fixed, home raid card labels were optimized, and campaign-aware raid lists were made clearer.
- Leaderboard and reward surfaces were polished. Sprint leaderboard detail UI was simplified, community leaderboards can stay visible for inactive conquests, loot tier rarity defaults were corrected, and activity raffle replay/review flows were improved.
- Verification quality messaging was added. The app now includes a verification quality disclaimer and better verifier/review copy around proof quality, rewards, and consensus review expectations.
- Large accessibility and UX audit passes continued. A substantial share of the commits since June 3 were repeated audit passes adding accessible names, dialog roles, button types, skip links, skeleton labels, aria-live behavior, duplicate-ID fixes, focus behavior, mobile CTA clarity, and page-shell consistency.
- Multiple deployment checkpoints landed. Deployment/publish commits covered raid campaign work, Squid campaign reporting, sale allocation notices, Home/dashboard fixes, accessibility fixes, cache/read optimization, squad fixes, and public community behavior.
Specific Bug Fixes
- Fixed Discord raid raider role mentions.
- Fixed SLX solo Discord proof submission.
- Fixed raid sidebar navigation.
- Fixed home raid card read amplification and label clarity.
- Fixed RaidModal instruction rendering so custom instructions can display formatted Markdown.
- Fixed RaidModal custom requirement label/input associations.
- Hardened raid proof image uploads.
- Added alert semantics to raid proof issue summaries.
- Fixed campaign report cache invalidation for raid campaign changes.
- Fixed public raid campaign routes so campaign listing and UGC submission are exposed in the expected public route shape.
- Fixed public campaign reports so they expose aggregates without leaking private UGC submission rows.
- Fixed campaign UGC approval so approved submissions become reward eligible and aggregate into UGC reward pools.
- Fixed campaign UGC rejection so rejected submissions record a reason and do not enter reward pools.
- Fixed promoted UGC raids so they carry campaign ID, source type, source submission ID, source user ID, participation goal, talking points, and reply variants.
- Fixed campaign reward execution so reward runs snapshot eligibility and create wheel/replay records.
- Fixed raid automation polling windows so X API end-time constraints are respected.
- Fixed campaign discovery poll markers so campaign-owned targets advance to the next poll window.
- Fixed raid automation dedupe/update behavior for recently processed target tweets.
- Fixed stale Republic progression snapshot cache behavior.
- Fixed X OAuth link state persistence.
- Fixed Legion UID cache refresh after link.
- Fixed Legionary promotion Discord delivery.
- Fixed legacy home Discord promotion settings.
- Fixed Home dashboard responsive layout.
- Fixed Home overlay Quest Board lazy import.
- Fixed Home page skeleton/loading behavior.
- Fixed long-lived tabs recovering from stale app state.
- Fixed production/static asset caching and reload-heavy behavior that could contribute to repeated requests.
- Fixed home open squads bootstrap load.
- Fixed home squad lobby read load.
- Fixed squad invite link joins.
- Fixed squad invite exhaustion and invite modal UX.
- Fixed squad invite code normalization and clearer format errors.
- Fixed squad leave ID handling.
- Fixed stale squad memberships after leaving.
- Fixed stale leader IDs when squad members leave or are kicked.
- Fixed active squad mission progress overlay.
- Fixed squad quest mission report CTA.
- Fixed quest progress cache updates.
- Fixed quiz progress cache invalidation.
- Fixed start-objective progress cache invalidation.
- Fixed Squid raffle commit-tab visibility.
- Fixed raffle commit modal fit.
- Fixed existing raffle VP commitment display.
- Fixed sale allocation minimum enforcement.
- Fixed targeted sale allocation notice dismissal accessibility.
- Fixed verifier case reset for resubmitted quests.
- Fixed verification quality disclaimer semantics.
- Fixed activity raffle review regressions.
- Optimized activity raffle recent reads.
- Optimized consensus review author reads.
- Fixed notification panel scan limits.
- Fixed onboarding completion/close navigation to the Quest Board.
- Fixed onboarding finish-button hierarchy and welcome CTA clarity.
- Fixed onboarding guild copy syntax.
- Fixed community scope notes and Discord CTAs when no invite URL exists.
- Fixed no-invite public community board copy and control states.
- Fixed Interfold tenant guild selection.
- Fixed Interfold guild application validation.
- Fixed admin access for pending Discord installs.
- Fixed loot tier rarity rank defaults.
- Fixed sprint leaderboard duplicate dates and detail UI noise.
- Fixed community leaderboard card semantics.
- Fixed Quest Board and route test assumptions after component moves.
- Fixed page skeletons and loading live-region labels.
- Fixed many missing accessible names on inputs, buttons, links, dropzones, dialogs, overlays, tables, and status panels.
- Fixed invalid nested heading/button markup in several public community and directory cards.
- Fixed duplicate IDs in quest and conquest briefing hints.
- Fixed aria-live, role=status, and role=alert coverage across loading and error states.
- Fixed button `type=button` omissions across modal/admin/action surfaces.
- Fixed mobile top bar and profile dropdown button semantics.
- Fixed focus-visible behavior and skip-link coverage on Home route shells.
- Fixed design-system/test guards where tests read optional or moved component files.
- Fixed deployment/startup regressions from syntax, import, and component prop mismatches.