Split publish into separate GitHub and integrations actions#76
The "Publish changelog" button now decouples GitHub release updates from integration notifications, giving users independent control over when to notify Slack, Discord, webhooks, and other integrations.
Add Personal Team scaffold (unified-team refactor, phase 1)#96
Foundation for unifying "personal" and "team" workspaces. Every user now has an auto-created Personal Team that owns repos, integrations, and BYOK config.
Backfill Personal Teams (unified-team refactor, phase 2)#97
Migrates existing user data into the new Personal Team model, copying BYOK config and repo ownership for seamless transition to unified workspace structure.
Side-by-side UI lets you see exactly how retrieval-augmented generation differs from static context, making the impact of semantic search visible during release authoring.
Team Commit Digests now pull semantically similar past entries for richer context, improving AI-generated velocity reports with relevant repo history.
Public profile redesign — identity, accent, pins, AI tagline#91
First half of `/u/[username]` redesign. Add custom bio, Twitter handle, website, accent color, and AI-generated tagline to make your developer profile shareable on social media.
Action-keyed permission matrix as single source of truth#77
Centralizes role-based access control in `lib/permissions.ts` so backend guards and UI read the same policy, making permission changes consistent across the entire app.
Surface role capabilities on the team members page#78
Team members can now see what each role (Owner, Admin, Member) is permitted to do, improving transparency around permissions and access levels.
Gated action tooltips: explain why a button is disabled#79
Members now see disabled buttons with hover tooltips explaining the required role, instead of silently hiding unavailable actions.
Expand gated-action tooltips across all team surfaces#80
Applies role-explanation tooltips to every role-gated button and link in the dashboard for consistent, transparent permission feedback.
Opt-in per-user flag that uses semantic search to fetch similar past entries for each new release, replacing the stale static Layer 2 historical summary.
Persistent "Ask" bubble in the bottom-right corner of authenticated pages gives instant access to semantic search without navigating away.
Public profile redesign — heatmap, featured, grouped timeline#92
Second half of `/u/[username]` redesign adds contribution heatmap, featured release cards, and grouped timeline for a Twitter-worthy developer profile.
Fixes missing Profile tab entry in settings navigation so users can access bio, Twitter handle, website, accent color, and pinned releases.
Fix team members' access to repo and release detail pages#94
Team members no longer hit 404 errors when clicking repos and releases from the list view. Fixed server-rendered pages to use proper access control filters.
A new public guide page helps readers learn Yanib without signing up first. The 16-section guide also serves as in-app help with deep links to anchors from dashboard empty states and Help links.
Add Sharing tab to settings and reorganize account page#75
Sharing and embed tools (profile card, OG image, feed widget, badges, AI summary) now have their own dedicated tab in Account settings, making them easier to find and manage.
Fix
Fix GitHub App installation verification for webhook creation#69
Repos under owners whose App installation didn't cover them now correctly skip webhook creation instead of saving with a stale installationId and never receiving release events.
Fix AI JSON truncation crash and cache poisoning#71
Release generation no longer crashes when the AI response is incomplete or invalid, preventing cache corruption from incomplete JSON.
Fix release state downgrade from DRAFT to FAILED and add JSON repair#73
Releases with all fields populated (entries, summary, social, audience) no longer incorrectly show as FAILED. Added observability and JSON-repair salvage to recover from malformed AI responses.
Chore
Remove AI vendor names from public-facing surfaces#74
Marketing and help pages now refer to "AI" and "AI-powered" generically instead of naming Claude, Anthropic, or Haiku.
Migrated the entire dashboard to shadcn/ui primitives, replacing custom implementations with accessible, keyboard-navigable components backed by Radix UI. Includes Button, Dialog, DropdownMenu, Input, Label, Textarea, Select, Checkbox, RadioGroup, and Switch.
Updated 19 form files across the app to use shadcn Input, Label, Textarea, Select, Checkbox, RadioGroup, and Switch components for consistent styling and behavior.
Replace dropdowns with DropdownMenu and upgrade command palette#66
Replaced all bespoke dropdown implementations with shadcn DropdownMenu (with focus trap, outside-click, keyboard navigation). Rewrote the Cmd+K command palette using cmdk for better search and navigation.
Migrate modals to Dialog and add mobile navigation Sheet#64
Replaced hand-rolled fixed-positioned modals with shadcn Dialog component. Added Sheet primitive for responsive mobile navigation in the dashboard.
Enable subscription cancellation with grace period#67
Pro users can now cancel from Settings → Billing and retain access until the end of the current billing period. An amber banner displays the cancellation date with a one-click Resume option during the grace period.
Streamlined the top-nav from 8 links to 4 + a More dropdown menu. Integrations, Widgets, Activity, and Digests are now grouped and accessible via the More menu for a cleaner dashboard layout.
Chore
Add structured server logging to silent-failure surfaces#60
Implemented consistent logging patterns across webhooks (GitHub, GitLab), OAuth callbacks, billing checkout, and the release publish pipeline to improve debugging and monitoring of error conditions.
The LogoIcon was inheriting text color from its parent container, causing it to become invisible on dark-themed pages like the public team digest. The logo now displays correctly with proper contrast.
auto-2026-04-18
Feature
Support self-hosted GitLab via Personal Access Token#54
Users can now connect to self-hosted GitLab instances using Personal Access Tokens, enabling multi-instance deployments.
Fix
Make provider-agnostic UI actually provider-agnostic#50
Fixed UI copy and widgets that hard-coded GitHub as the only git provider, allowing GitLab-only users to use the platform without confusing GitHub-specific messaging.
Refresh GitLab OAuth tokens before server-side API calls#53
GitLab OAuth tokens expire every ~2 hours. The app now refreshes tokens before making server-side API calls to prevent 401 authentication errors.
Repository metadata (name, owner, description, archive status) is now kept in sync when changes occur on GitHub, preventing stale data in changelogs and API calls.
Keep README badges resolving after repo rename/transfer#56
Badge URLs now redirect properly when repositories are renamed or transferred on GitHub, ensuring existing badges continue to work.
Fixed a billing integrity bug where the GitHub App install callback bypassed the repository plan limit, allowing Free users to connect more than one repo.
Prompt Google/email users to connect GitHub before repo actions#41
Google and email sign-ins now see a dedicated **Connect GitHub** prompt instead of silently failing when accessing repo-dependent features. GitHub connection is now properly gated behind a `hasGitHub` signal.
Yanib now builds a compact, persistent understanding of your codebase on first connect and injects it into every release-notes generation. The AI writes with your domain conventions and structure in mind, scaling identically from 100-commit to 30K-commit repos.
Auto-generate username when linking GitHub to existing account#45
GitHub usernames are now automatically slugified into Yanib usernames when linking GitHub to an existing account, powering your public profile, GitHub README card, stats badge, and year-in-review page.
Add live preview for Personal Feed Widget in Settings#46
The Personal Feed Widget section now shows a real-time preview with toggles for theme (Light/Dark) and limit (3/5/10 items), so you can see exactly what the widget looks like before embedding it.
New `/widgets` page displays all six embeddable widgets rendered with your actual data. Toggle options, preview live, and copy snippets in one place — accessible from Dashboard → Quick Actions.
New embeddable widget renders your public GitHub profile (avatar, name, bio, followers, top languages, top repos) without requiring any Yanib-connected repos. Complements the existing `<yanib-stats>` widget.
Surface Widget Marketplace in high-discoverability locations#49
The Widget Marketplace is now reachable from five key entry points where users naturally look, making it unmissable without being intrusive.
`fetchCommitsBetweenTags` and `findPreviousTag` were silently dropping data beyond 100 commits or tags due to missing pagination. Now properly fetches all commits and tags, with warnings when limits are exceeded.
Every AI call now writes to a persistent `AIUsage` table (in addition to the in-memory ring buffer), enabling measurement of cost per task, user, and over time, plus cache hit rate analysis.
Switch payment processor to Paddle Billing for improved tax handling and compliance. All existing Stripe customer references are automatically migrated.
OutPost now supports GitLab as a second VCS provider alongside GitHub, with full feature parity across both platforms.
Redesign digest with public sharing and celebration focus#38
Transform digests into shareable, team-focused "Monday morning proud moment" experiences. Includes a new public sharing page and redesigned dashboard with improved component library.
Enhance landing page with live SDK preview and Built with Yanib section#39
Add interactive SDK preview and showcase section to make the landing page more memorable and engaging.
Fix
Fix Digests navbar link highlighting on team digest pages#37
The Digests link in the top navigation now correctly highlights when viewing team digest pages.
auto-2026-04-14
Feature
Complete footer with About, Privacy, Terms, and API reference pages#36
Fixed broken and placeholder footer links by adding the missing documentation pages.
Architectural foundation for multi-provider support (GitHub, GitLab, Bitbucket). Phase 1 refactors existing GitHub code through a new provider interface — no user-facing changes.
Resolves multiple rendering issues with the commits-per-day chart: missing px units on container height, invisible gradient bars, and missing data population. Chart now displays correctly with proper styling.
Automatically runs linting and formatting on staged TypeScript/JavaScript files via Husky and lint-staged.
auto-2026-04-12
Feature
Add team commit digest — AI-generated velocity reports#16
Team admins can now receive recurring AI-generated digests showing who shipped what across repos, delivered to the dashboard and integrated with Slack, Discord, and webhooks.
Auto-generate social posts and multi-audience versions#20
Release summaries now automatically generate Twitter/LinkedIn posts and dev/PM/end-user audience versions in the pipeline.
Introduce `<outpost-stats>` component for displaying developer statistics including releases, entries, repositories, streaks, sparklines, and change type breakdowns. Supports horizontal, vertical, and compact layouts for flexible website integration.
Add SDK personal portfolio and filtered feed support#12
Enable developers to embed rich shipping portfolios on their websites with filtered feed capabilities for personalized showcase.
The "Dismiss all" button in the Discover section now correctly dismisses every tip instead of only the 3 currently visible ones, preventing tips from reappearing immediately after dismissal.
auto-2026-04-06-6
Feature
Add BYOK (Bring Your Own Key) support for Claude API#8
Users can now provide their own Anthropic API key and select their preferred Claude model (Haiku 4.5, Sonnet 4, or Opus 4) from Settings > AI. API keys are encrypted with AES-256-GCM and never stored in plaintext.
Contextual tip cards on the repo overview page now navigate to the relevant tab when clicked, improving discoverability of Settings, Integrations, and Share features.
Resolved production error where event handlers in server components caused crashes. Replaced interactive button elements with static paragraph tags in contextual tip cards.
auto-2026-04-06-3
Fix
Fix integrations and subscriber emails triggering on auto-published releases#7
Auto-published releases (via PR merge or scheduled batch) now correctly trigger integrations and send subscriber notifications, matching the behavior of manual publishes.
Streamlined the public changelog language options to focus on the most commonly used languages: English, Español, Français, Deutsch, 中文, and Русский.
auto-2026-04-06
Feature
Add command palette (Cmd+K) for feature discovery#5
Introducing a searchable command palette accessible via Cmd+K keyboard shortcut with a clickable search pill in the navbar. This comprehensive feature discovery enhancement makes all 20+ features visible and discoverable to users.
Redesign feature discovery UI with AI tools grid and spotlight#5
Improved navigation and visual organization of features through new grid layouts and spotlight components, increasing feature discoverability from ~30% to comprehensive coverage.