Changelog
[Unreleased]
Added
- Open source release. Brainy is now licensed under AGPL-3.0-only, with a Contributor License Agreement, issue forms, CODEOWNERS,
.editorconfig,.gitattributesand third-party notices. Shared community files (Code of Conduct, contributing guide, security policy, support) come from kasuken/.github. - Source code link. The navigation menu links to the application's source code, as AGPL-3.0 section 13 requires. Self-hosters can point it at their own fork with the
SourceCodeUrlsetting.
Changed
- Releases. The release workflow is now the shared kasuken workflow: run Release on
mainwith a version bump (or publish a GitHub release), and it waits for CI, builds once, deploys, smoke tests, and only then tags the release.redeployrolls back to an earlier tag. It no longer changes App Service settings. - Billing is off by default. The shipped
appsettings.jsonnow usesBilling:Provider = None, so self-hosted instances run without a payment provider. The hosted service setsBilling__Provider=Stripeas an App Service application setting.
Removed
- Internal release-planning documents under
docs/roadmap/.
[8.1.1] - 2026-09-29
Fixed
- Billing webhooks on a shared Stripe account — Brainy now ignores Stripe events that belong to another product billed through the same account (such as LearnStack). Stripe delivers every event to every endpoint, signed with that endpoint's own secret, so a valid signature alone never proved an event was Brainy's.
- Checkout completions identify the user only from Brainy's own
brainy_user_idmetadata, never fromclient_reference_idalone. Another product's checkout previously failed theUserPlanforeign key and returned 500, which would make Stripe retry and eventually disable the endpoint. - Subscription events are ignored unless they carry Brainy metadata or a configured Brainy price, so another product's subscription on the same customer can no longer downgrade a Brainy user to Starter.
- Invoice events must belong to a Brainy subscription (metadata snapshot, stored subscription id, or a Brainy price line), so another product's paid or failed invoice can no longer grant Pro or start a grace period.
- Checkout completions identify the user only from Brainy's own
- CI on Linux — the Today task-status markup test used Windows path separators and failed on the Linux build agent.
[7.1.3] - 2026-09-16
Fixed
- Onboarding journey layout — repositioned the journey panel away from the navigation drawer and capture control, and added viewport-aware scrolling for longer onboarding steps.
[7.1.2] - 2026-09-16
Added
- Guided onboarding — expanded the getting-started journey from six to seven steps with Areas and project-template setup, localized English and Italian strings, and a replay entry point from an empty Today.
Improved
- Onboarding reliability — interactive-only controls are now hidden on static account pages, dismissed journeys are tracked, and cross-component journey launching is supported.
[7.1.1] - 2026-09-16
Improved
- Subscription billing — first-time Stripe Checkout sessions now use the signed-in Brainy account email, while existing Stripe customers keep their stored customer email.
- Billing reliability — webhook state changes are applied before marking events as processed, allowing provider retries to recover from transient failures without losing plan changes.
[7.1.0] - 2026-09-16
Improved
- Subscription billing — the Stripe provider now supports promotion codes and lets users choose the billing interval when managing their Pro subscription.
- Release operations — increased smoke-test retry attempts after deployment to reduce false-negative release verification.
[7.0.0] - 2026-09-16
Added
- Subscription billing — added a live Stripe provider for Pro subscriptions alongside server-side plan and entitlement handling.
- Localization — added culture negotiation, user language preferences, an English and Italian translation surface, and localized marketing, Inbox, Notes, and Today workflows.
- Knowledge import and export — added Notion, Evernote, Obsidian, and Markdown-folder importers, plus Markdown and Obsidian vault export.
- Public output sharing — added read-only share links and a public output page with rate limiting and cross-user isolation.
- Web push notifications — added push subscription management, preferences, service-worker handling, and background dispatch.
- Calendar feeds — added tokenized ICS feeds for calendar events and milestone due dates, with settings and documentation.
- Templates — added project, note, and output templates, creation-flow entry points, and export, import, and account-deletion support.
- Note version history — added note revisions, retention, restore support, and version history in the note editor.
- Transactional email — added provider-abstracted account email delivery with SMTP/MailKit support for confirmation and password reset flows.
- Tag management — added user-scoped tag rename, merge, delete, and unused-tag cleanup workflows.
- Command palette search — extended global search with command-palette actions.
- Observability and analytics — added OpenTelemetry traces, metrics, and logs plus activation-funnel metrics in the analytics dashboard.
Improved
- Security hardening — restored antiforgery middleware ordering and rejected background impersonation inside request scopes.
- Reliability and coverage — added end-to-end coverage for offline capture and sync, PWA share targets, circuit reconnection, and the primary application loop, plus SQL Server and HTTP-level coverage for the new workflows.
- Data integrity — tightened the note-revision self-reference constraint and added explicit cleanup for retained revision links.
- Release operations — added a dedicated Playwright E2E CI job and documented the release 7 epic backlog.
[6.0.0] - 2026-09-11
Added
- Offline capture and sync — added a service-worker-based offline fallback with an IndexedDB capture queue, background synchronization, PWA share-target support, cached Today snapshots, and idempotent server-side syncing.
- Guided weekly review — added a weekly review workflow that combines planning, Inbox age bands, and resurfaced useful notes with explicit keep, dismiss, link, archive, and turn-into-task decisions.
- Resume Context — current-focus tasks now surface blocked or waiting state, the next subtask, linked notes, project and goal context, and an editable restart note.
- Trust and compliance foundations — added draft privacy, terms, acceptable-use, and AI-transparency pages, plus a resumable first-run onboarding journey and Starter Mode navigation.
- Product analytics — added privacy-safe, consent-gated analytics with a public event data dictionary, internal dashboard, and export and deletion integration.
- Plans and entitlements — added Starter and Pro plan definitions, server-side entitlement enforcement, downgrade-to-read-only project handling, a pluggable billing-provider abstraction, and an idempotent billing webhook endpoint.
Improved
- Capture reliability — added duplicate detection for share and manual capture flows and offline cleanup during logout.
- SEO and deployment hardening — centralized public page title handling, validated absolute URL schemes, and aligned production verification and smoke-test URLs with the custom Brainy domain.
- Regression coverage — added service, endpoint, rendering, production-surface, and security-focused tests across the new workflows and SEO changes.
[5.15.0] - 2026-09-07
Added
- Search engine optimization infrastructure — public pages now publish consistent titles, descriptions, canonical URLs, Open Graph and social-card metadata, plus structured data for Brainy, its plans, and release notes.
- Crawler discovery endpoints — added
robots.txtand XML sitemap endpoints so search engines can reliably discover Brainy's public pages.
Improved
- Production domain configuration — release deployment, production verification, and operational documentation now use
https://www.brainy-me.comas Brainy's public origin. - SEO regression coverage — added production-surface tests for metadata, structured data, and discovery responses.
[5.14.0] - 2026-09-04
Added
- One Dark Pro theme — added a built-in One Dark Pro option to the theme selector, with a complete MudBlazor palette and matching application styling for a cohesive dark workspace.
[5.13.3] - 2026-09-04
Improved
- Idea editing workflow — idea creation and editing now use dedicated pages instead of a dialog, providing a clearer workspace for managing ideas.
[5.13.2] - 2026-09-01
Added
- Application-level caching — added a user-scoped caching layer with consistent cache keys, 5-minute TTL entries, lock coalescing, and tag-based invalidation for expensive application-service queries.
Improved
- Service query performance — integrated caching across application services for notes, projects, areas, resources, tasks, Today, Week, goals, search, outputs, summaries, and related planning surfaces.
- Cache invalidation safety — mutations now invalidate related entity and user-scoped cache entries so updated knowledge, task, and planning data stays fresh.
- Caching regression coverage — added unit coverage for cache behavior plus account-deletion coverage that verifies cached data is invalidated when a user account is removed.
[5.13.1] - 2026-08-31
Improved
- Today task card maintainability — Today widgets now share a reusable task-card component for consistent task actions, due-date formatting, priority styling, and cleaner widget markup.
[5.13.0] - 2026-08-29
Added
- Public changelog page — visitors can now browse Brainy's complete release history from the marketing site, with direct navigation links in the header and footer.
Improved
- Priority Projects responsiveness — the Today priority-project cards now use a responsive grid, while task controls and content preserve their layout on smaller screens.
[5.12.4] - 2026-08-28
Added
- In Progress current-focus action — tasks in the Today In Progress widget can now be set as the current focus directly from the task card.
Improved
- Weekly planning production-surface coverage — verifies that the current-focus action remains available for planned weekly work rendered in Today.
[5.12.3] - 2026-08-28
Improved
- Areas and Resources card styling — refreshed card icons and simplified page headers to make PARA organization views clearer and more consistent.
[5.12.2] - 2026-08-26
Improved
- Multi-section task visibility in Today — weekly commitments are now treated as planning labels rather than owning task card display exclusively, allowing planned tasks to remain visible in all applicable execution sections (such as In Progress, Overdue, High Priority, and Due This Week).
- Today aggregate regression coverage — updated Today service tests to verify that weekly commitments appear concurrently across relevant status and priority task lists.
[5.12.1] - 2026-08-26
Improved
- Inbox note review — processing a note now lets users revise its title and content before moving it into a PARA category, with active project grouping in the destination selector.
- Note validation and concurrency handling — blank reviewed titles are rejected and stale note updates surface as concurrency conflicts instead of silently overwriting newer changes.
- Note-processing regression coverage — added service tests for reviewed content updates, blank-title validation, and stale row-version conflicts.
[5.12.0] - 2026-08-26
Improved
- Weekly commitments stay visible in Today — planned weekly tasks now remain in the Planned this week widget even when they are overdue or in progress, keeping deliberate weekly planning context intact.
- Today section deduplication order — task de-duplication now prioritizes weekly commitments before generic status sections so selected weekly work is shown in its intended planning surface.
- Weekly widget placement and preference fallback — the Planned this week widget now appears in the main Today task section and remains visible when users already have selected weekly tasks, even if older dashboard preferences did not include the widget.
Added
- Weekly planning regression coverage — added service and production-surface tests that verify overdue/in-progress weekly selections stay in the weekly plan and remain visible in Today.
[5.11.0] - 2026-08-24
Added
- Planned this week Today widget — weekly commitments now flow into Today with completion progress, active commitment counts, due-date context, project links, next-subtask visibility, and clear empty, completed, and replanning states.
- Weekly execution actions — commitments can be edited, marked complete, or set as the current focus directly from the Today widget, with a direct link back to the Week planning workspace.
- Dashboard preference support — the new weekly commitments widget can be enabled or hidden alongside the existing Today dashboard widgets.
Improved
- Today planning guidance — Today’s guidance and execution flow now distinguish deliberate weekly commitments from general deadline-driven work.
[5.10.5] - 2026-08-24
Improved
- Weekly project overview — projects are now grouped by status and ordered by priority, due date, and name so execution-ready work is easier to scan.
- Weekly task planning context — task cards now show their project name, while the selection workspace limits new commitments to active projects and explains when none are available.
[5.10.4] - 2026-08-24
Fixed
- Production weekly planning query — includes the corrected task-level weekly selection count query in the production release, preventing the Week page from failing when SQL Server translates project overview data.
[5.10.3] - 2026-08-24
Improved
- Weekly selection counts — corrected weekly project selection counting to use task-level selection membership, avoiding query translation failures and accurately reporting the number of selected tasks.
- Weekly planning regression coverage — added a service test covering selection counts for projects with both selected and unselected tasks.
[5.10.2] - 2026-08-24
Improved
- Weekly planning rendering — simplified attention-task markup into declarative Razor and added stable keys for weekly task groups and attention cards, improving list updates and component state preservation.
- Week loading heading — the Week page now shows a clean
Weekheading while weekly data is loading instead of displaying a placeholder week number.
[5.10.1] - 2026-08-24
Fixed
- Weekly task capture interaction — corrected the
Add to weekbutton event callback typing so the weekly planning page compiles and handles the action reliably.
[5.10.0] - 2026-08-24
Added
- Weekly planning workspace — a new Week view helps users choose the projects and tasks they are committing to for the current week, review next actions, and keep planning connected to project context.
- Weekly task selections — weekly commitments are persisted per user and week, with support for adding and removing tasks, setting the current focus, and carrying unfinished selections forward from the previous week.
- Weekly planning coverage — added application-service, SQL Server integration, and production-surface tests for weekly planning, persistence, carry-forward behavior, and navigation.
Improved
- Execution navigation — Today and Week now share a view switch so users can move between daily execution and weekly planning without losing context.
- Weekly project planning — project status and task actions can be updated directly from the weekly workspace, with replanning and attention details surfaced alongside each commitment.
[5.9.0] - 2026-08-22
Added
- Today subtask management — Today task cards now show non-archived subtasks inline, including their status and due date, so users can review and update task progress without leaving the daily workspace.
Improved
- Task status actions across Today widgets — users can complete, reopen, or move tasks and subtasks to In Progress directly from the Today dashboard, with refreshed sections after each change.
- Today task data — service projections now include ordered subtask details while preserving the existing project and task context.
- Today regression coverage — added tests for subtask data and Today task behavior introduced by the new workflow.
[5.8.0] - 2026-08-22
Improved
- User time-zone service concurrency — registered
IUserTimeZoneServiceas transient so concurrent Blazor SSR consumers keep their captured database contexts isolated. - Dependency-injection regression coverage — added a test that verifies the user time-zone service keeps its transient lifetime.
[5.7.0] - 2026-08-22
Added
- Tasks Hub project scope filtering — task planning views now support explicit project scopes while keeping active projects as the default, making it easier to focus on the right project context.
Improved
- Development cookie compatibility — authentication and antiforgery cookies now follow the request scheme during local development while retaining secure-only cookies in production.
- Project workspace coverage — added regression coverage for loading project details with top-level tasks and completed subtasks.
[5.6.0] - 2026-08-22
Added
- Quick task due dates — the quick task dialog now lets users add an optional due date during capture, making lightweight task creation better aligned with calendar and Today planning workflows.
- Today dashboard presets — dashboard preferences now include preset choices for minimal and full widget layouts.
Improved
- User-calendar date handling — task, project, goal, calendar, and Today surfaces now compare due and overdue work against the user's current date instead of a server-centric date.
- Current focus detail — the current task widget now exposes richer task context, including due-date and project information surfaced from the application services.
- Pricing and registration defaults — public pricing now reflects the latest currency and amounts, and registration is enabled by default for new deployments.
[5.5.0] - 2026-08-20
Added
- Neurodivergent-friendly product messaging — the public site now highlights Brainy's frictionless capture, calm Today screen, predictable low-stimulation interface, and non-judgmental deadline support for ADHD and AuDHD users.
- Focus-support feature detail — the Features page now includes a dedicated neurodivergent-friendly focus capability alongside Brainy's existing PARA and CODE workflows.
Improved
- Marketing stylesheet delivery — public pages now load their dedicated styling reliably even when individual routes provide page titles and metadata.
- Marketing regression coverage — production-surface verification now checks that the landing page serves its marketing stylesheet.
[5.4.0] - 2026-08-20
Added
- Public Brainy marketing site — a new responsive landing page introduces Brainy's PARA organization model, CODE workflow, and Today execution surface to prospective users.
- Features and pricing pages — dedicated product and pricing routes provide a clearer path from product discovery to account registration.
- Marketing navigation shell — public pages now share a branded header and footer with direct links to features, pricing, sign-in, and registration.
Improved
- Authenticated entry path — signed-in visitors who reach the public landing page are redirected to Today, keeping active users focused on their work.
- Production-surface coverage — added route and markup checks for the public marketing experience and its navigation.
[5.3.2] - 2026-08-20
Improved
- Action-item project context — action items now include the linked task's project ID and name, making their project context available to consuming workflows.
- SQL Server query compatibility — action-item retrieval now uses EF Core projections verified against SQL Server, with integration coverage for linked and unlinked task scenarios.
[5.3.1] - 2026-08-20
Fixed
- Current task focus switching — selecting a different current task now reliably clears the prior selection before assigning the new one, preventing unique-index conflicts and preserving one active focus task per user.
- Focus-switching regression coverage — added a service test that verifies the new current task is selected and the previous one is cleared.
[5.3.0] - 2026-08-20
Added
- Linked project access for committed ideas — committed ideas in the Ideas page now show a direct
View projectlink to the project created from the idea, making the transition from incubation to execution easier to follow.
[5.2.0] - 2026-08-20
Added
- Commit idea to project workflow — ideas can now be converted into projects through a guided decision checkpoint covering the target user and problem, suitability, evidence, a validation experiment, and the commitment being replaced.
- Decision record preservation — committed projects retain the idea's title, description, area, and five commitment decisions, while the original idea is marked as converted and its working research notes are cleared from active idea context.
Improved
- Idea conversion reliability — added ownership-aware conversion handling, concurrency conflict reporting, and focused service and dialog coverage for the new workflow.
[5.1.0] - 2026-08-19
Added
- Midnight Blush theme — users can now choose a second dark theme with a deep navy background and rose, purple, and teal accents from the theme menu.
- Midnight Blush palette coverage — added theme resolution and primary-accent tests for the new palette.
[5.0.1] - 2026-08-19
Added
- Dracula theme — users can now choose a dark Dracula-inspired theme from the theme menu, with a coordinated MudBlazor dark palette and Brainy design styling.
Improved
- Theme management — theme selection now supports Brainy, Minimal, and Dracula themes, persists across sessions, restores before the first paint, and stays synchronized between the page styling and MudBlazor components.
- Theme coverage — added focused tests for theme palettes, selection behavior, and change notifications.
[5.0.0] - 2026-08-19
Added
- Progressive Web App support — Brainy now includes an installable web app manifest with app metadata, theme settings, responsive icons, and Apple touch icon support for a more native mobile launch experience.
- Service worker registration — the app registers a lightweight pass-through service worker that satisfies browser installability requirements while continuing to serve requests from the network.
[4.0.16] - 2026-08-19
Improved
- Today snapshot navigation — In Progress, Overdue, Due Today, Inbox, and Active Projects metrics now link directly to their relevant planning views, with descriptive labels for assistive technologies and visible keyboard focus states.
- Clearer task prerequisites — the task editor now displays selected prerequisite task titles instead of opaque identifiers.
Changed
- Today notifications consolidated — removed the duplicate notification display from the Today page so the daily dashboard keeps its focus on active work.
[4.0.15] - 2026-08-17
Changed
- Project summary cards simplified — removed the unused desired-outcome display so project cards focus on progress, status, and actionable project metrics.
[4.0.14] - 2026-08-17
Changed
- Project status vocabulary clarified — the former
Waitingstatus is nowBlocked, and a newParkedstatus distinguishes work intentionally paused from work awaiting an unblocker. - Existing status data migrated — projects stored with
Waitingare converted toBlockedby an EF Core migration, with the updated statuses reflected throughout project editors, cards, detail pages, Areas, Goals, Today, and Tasks Hub views.
[4.0.13] - 2026-08-16
Added
- LLM focus export — a new LLM page and navigation entry let users download a versioned, user-scoped JSON snapshot for external focus-planning workflows. The export includes active projects, open tasks, dependencies, goals, inbox metrics, the user's calendar date and time zone, and a versioned planning prompt.
- Privacy-aware LLM handoff — the exported snapshot records that it is not sent automatically and reminds users to review project, task, and goal text before sharing it with an external LLM.
Improved
- Focus export prioritization and coverage — projects and tasks are ordered by priority and due date, and inbox counting follows the note's actual Inbox status. Regression and production-surface tests cover the new LLM workflow and its navigation entry.
[4.0.12] - 2026-08-15
Added
- Archive reasons across the PARA model — archived Projects, Areas, Resources, Notes, Tasks, Ideas, Goals, and Outputs now retain optional context explaining why they were archived, with a database migration and archive dialogs that capture the reason.
- Data import support — account management now supports importing Brainy JSON exports with entity counts and a detailed import result for reviewing what was added or skipped.
- Today dashboard preferences — users can choose which Today widgets are visible, including the daily snapshot, current focus, task sections, goals, and priority projects.
- Current focus picker — the Today quick actions now open a focus-selection dialog for choosing the task currently being worked on.
Improved
- Search and content workflows refined — search results now preserve and display snippet source context, while task, note, image, calendar, and output workflows receive broader dialog, validation, and interaction improvements.
- Account and responsive UI updates — management, archive, project, task board, task list, calendar, and Today surfaces were updated to support the new dialogs, archive context, and streamlined interactions.
[4.0.11] - 2026-08-15
Added
- Inbox PARA suggestions — inbox cards now show the suggested PARA category for each note, with the suggestion reasoning available on hover. Suggestions refresh after capture processing, edits, categorization, and archiving.
- Home notifications restored — the Today page now displays available notification alerts again.
Improved
- Global search accessibility — the search field now exposes combobox semantics and tracks the active result for keyboard and assistive-technology users.
- Theme menu accessibility — the theme switcher now has an accessible label.
[4.0.10] - 2026-08-15
Added
- Project table view — the Projects page now includes a card/table view toggle. The table layout exposes project status, priority, due date, progress, open-task count, and quick actions for opening, editing, completing, or archiving a project.
[4.0.9] - 2026-08-14
Fixed
- Area Detail now renders reliably with ad blockers enabled — Area Detail CSS class names no longer use ad-blocker-sensitive
ad-*prefixes, preventing cosmetic filter lists from hiding page content or styling. - Ad-blocker-safe naming regression tests — markup tests now protect the Area Detail page from reintroducing CSS class names commonly targeted by content blockers.
[4.0.8] - 2026-08-14
Fixed
- Area summaries now match active content — Area project, open-task, and recent-note counts now exclude archived records, archived-by-status projects, subtasks, and records owned by another user.
- Archived notes removed from active Area views — archived notes no longer appear in an Area's linked-note list or as candidates to link to an active Area.
[4.0.7] - 2026-08-14
Fixed
- Inactive project tasks excluded from active task views — Today, Tasks Hub, and current-task recommendations now require the parent project to be active, so tasks belonging to waiting projects no longer appear in active execution workflows.
- Regression coverage for waiting projects — focused Today and Tasks Hub service tests now verify that tasks from waiting projects are excluded.
[4.0.6] - 2026-08-14
Added
RefreshVersionparameter onTaskListComponent— the component now reloads its task list wheneverRefreshVersionchanges, enabling parent pages to trigger a targeted refresh without a full page reload.
Changed
- Navigate to new project after creation —
ProjectsPagenow navigates directly to the newly created project's detail page instead of refreshing the list in place, reducing friction in the project-creation flow. ProjectEditorDialogreturns the project DTO — the dialog now closes with the created or updatedProjectDtoso callers can act on the result (e.g., redirect to the new project).- Task list refreshes after add/board change —
ProjectDetailPageincrements_taskListRefreshVersionwhen a task is added via the dialog or changed on the board, ensuring the task list stays in sync without triggering a full detail reload.
[4.0.5] - 2026-08-13
Changed
- Tasks Hub header redesigned — the top-dashboard panel is now a styled card with a clay accent left bar, radial gradient background, rounded corners, and a soft drop shadow for a stronger visual hierarchy.
- At-a-glance stat pills in the header — a new
.td-header-summaryrow shows compact metric pills (total, overdue, due today, in-progress counts) inline with the hero text so key numbers are visible without scrolling. - Header layout switches to horizontal on wider viewports —
.td-header-rownow usesalign-items: flex-end; justify-content: space-betweenso the hero text and stat pills sit side-by-side, reducing vertical space consumption. - Hero description line added — a short subtitle below the page greeting improves orientation for new users and clarifies page intent.
- TaskHealthWidget layout tightened — internal gaps and font sizes adjusted to remain readable within the narrower card bounds.
[4.0.4] - 2026-08-13
Improved
- Add a complete Dashboard to the Pulse page, including a full PARA summary, task and project metrics, and a new "Pulse" section with a timeline of recent activity across all content types.
[4.0.1] - 2026-08-13
Fixed
- Corrected the release metadata to keep the patch version aligned with the published package and assembly versioning.
- Updated the changelog entry to reflect the latest patch release after the 4.0.0 major release.
[4.0.0] - 2026-08-13
Added
- Production health/readiness probes, hardened release/CI workflows, SQL Server model integration coverage, CodeQL, Dependabot, and an operator runbook.
- Versioned, tenant-scoped JSON data export with image checksums and browser download from Account management.
- Immutable lifecycle activity ledger for accurate Pulse history, including migration backfill for provable legacy timestamps.
- Task recurrence execution, archive/restore provenance, prerequisite management and enforcement, highlight source offsets, and action-item distillation into project tasks.
- Search coverage for every first-class content type and AI-output provenance/source preservation.
Security
- Enforced HTTPS/HSTS assumptions, secure cookies, forwarded headers, security response headers, identity lockout, authentication rate limits, closed-by-default production registration, and stronger passwords.
- Added consistent tenant ownership validation, safe Markdown rendering, note-image signature validation, per-user image quotas, and abandoned-upload cleanup.
- Added optimistic concurrency handling for Projects, Tasks, Resources, Goals, Ideas, and Outputs.
Changed
- Quick Capture now rejects unsupported binary attachments instead of silently discarding their contents.
- Today, Pulse, and stale-work calculations use a persisted user time zone and injected clocks.
- Archive and Area lifecycle operations preserve child state and reject unsafe restores or archives with actionable messages.
- Primary pages expose recoverable loading failures, semantic headings, keyboard controls, accessible names, and responsive focus states.
[3.4.0] - 2026-08-13
Added
- Open Tasks section on Area detail page — a new
ad-sectionlists all open tasks across the area's linked projects, grouped with status (To Do / In Progress / …) and priority badges. When no projects are linked, or all tasks are complete, a contextual empty state is shown. - Overdue task count stat tile — the summary strip at the top of
AreaDetailPagenow includes an Overdue tile whose value turns red (ad-stat-tile__value--red) when overdue tasks exist. - Ideas count stat tile — an Ideas tile (clay accent when non-zero) is added to the summary strip alongside the existing Open Tasks and Notes tiles.
Changed
- Ideas section promoted to top-level — the Related Ideas block was previously nested inside the Projects section; it is now a standalone
ad-sectionrendered after Open Tasks, making it easier to scan at a glance. ITaskServiceinjected intoAreaDetailPageto load per-area task data.
[3.3.0] - 2026-08-13
Changed
- Project names are now clickable links in all Today widgets —
<span class="td-task-project">replaced with<a href="/projects/{id}">inCurrentTaskWidget,DueTodayWidget,OverdueWidget,InProgressWidget,NextTasksWidget, andHighPriorityProjectWorkWidget, letting users navigate directly to a project from any task row. - DueThisWeekWidget groups by project ID + name — the
GroupBykey changed fromProjectName(string) to{ ProjectId, ProjectName }so tasks from different projects with the same name are no longer merged; group headers are rendered as<a>links to the project page. - Project link hover state —
.td-task-project:hoveradds a subtle background tint and underline for clear affordance without disrupting the ambient typography.
[3.2.0] - 2026-08-12
Added
- Theme persistence — the active theme (Brainy or Minimal) is now saved to
localStorageand restored on next load via a small inline JS helper inMainLayout; users no longer lose their theme choice on page refresh.
Changed
- Font tokens adopted site-wide — hard-coded
'Fraunces'font-family references acrossArchivesPage,AreasPage,GoalListPage,IdeasPage,InboxPage,Notes,ParaDashboard,ResourcesPage,TasksHubPage, and related components replaced withvar(--font-display), so both themes apply their correct display typeface automatically. - MinimalTheme refined —
AppThemes.MinimalThemeupdated with a proper Inter-based font stack and a tightened neutral colour palette. - Hardcoded Google Fonts import removed from OutputDetailPage — the page-level
<link>for Playfair Display / Lato is removed; fonts are now loaded once fromApp.razorvia the theme-aware stylesheet. - Minimal theme CSS consolidated — the
:root[data-theme="minimal"]block inbrainy-design.cssis reorganised to cover typography tokens, spacing, and palette overrides in a single coherent section.
[3.1.0] - 2026-08-12
Added
- Runtime theme switching — users can now switch between two themes from a palette icon in the app bar:
- Brainy Theme — the existing warm editorial design (clay accent
#c0561d, Fraunces serifs for headings, Hanken Grotesk for body text,12pxborder radius). - Minimal Theme — a clean, neutral design (black/white palette, Inter font throughout,
4pxborder radius) inspired by distraction-free writing environments.
- Brainy Theme — the existing warm editorial design (clay accent
ThemeService— new scoped service (Brainy.Web.Themes.ThemeService) that holds the active theme state and fires anOnThemeChangedevent consumed byMainLayout.AppThemes— new static class exposingBrainyThemeandMinimalThemeasMudThemeinstances; the inline theme definition previously embedded inMainLayoutis now centralised here.data-theme="minimal"CSS attribute — a small inline JS helper (window.brainyTheme.setTheme) toggles the attribute on<html>, driving a:root[data-theme="minimal"]block inbrainy-design.cssthat overrides all CSS custom properties for the Minimal palette.- Inter font — the Google Fonts stylesheet in
App.razornow includes theInterfamily required by the Minimal theme.
Changed
MainLayoutrefactored to useThemeServiceandAppThemesinstead of the inline_themefield; implementsIDisposableto unsubscribe from theme-change events.app.cssbody font-family and background/colour now usevar(--font-body),var(--paper), andvar(--ink)tokens so both themes apply correctly without hard-coded values.
[3.0.0] - 2026-08-12
Changed
- Daily Focus Summary widget items wider —
.td-snap-itemminimum width increased from80pxto140pxinDailyFocusSummaryWidgetso the stat tiles no longer compress too tightly on mid-size screens, improving readability of the daily snapshot strip.
[2.1.0] - 2026-08-12
Added
- Pulse metrics grouped by domain area — the flat metric tile grid on the Pulse page is replaced with labelled groups (Notes, Tasks, Projects, Outputs, Ideas, Goals). Each group shows a header with an icon, title, and a pill badge with the group total, followed by its own metric tile grid. New
MetricGroupandMetricTilerecord types drive the data model.
Changed
- Task widget action button order standardised — in
OverdueWidget,DueTodayWidget,DueThisWeekWidget, andHighPriorityProjectWorkWidgetthe "Set In Progress" button now appears after "Edit task" and before "Mark complete", giving a consistent Edit → Set In Progress → Complete order across all Today widgets.
[2.0.0] - 2026-08-12
Added
- New Task shortcut in the header nav — a primary-styled "New Task" button is now available in the top dashboard and opens the add-task dialog directly, making task creation faster and more visible from the home screen.
Changed
- Home dashboard flow redesigned for faster action — the top dashboard was restructured to present the main daily view above the task list, with a cleaner navigation row and updated responsive layout.
- Priority projects moved below the task list — the projects panel now appears after the execution sections, using a broader responsive card grid for easier scanning.
- Quick Actions toolbar removed — task creation is now handled from the New Task button in the header rather than the previous standalone action area.
[1.10.0] - 2026-08-12
Added
- New Task shortcut in the header nav — a primary-styled "New Task" button (clay accent colour,
.td-nav-chip-primary) is now the first chip in the navigation row and opens the add-task dialog directly, replacing the separate Quick Actions toolbar.
Changed
- Priority projects moved below the task list — the projects panel is removed from the top-dashboard area and rendered at the bottom of the main execution column after all task sections. All priority projects are now shown (no two-card cap), laid out in a responsive
auto-fill minmax(320px, 1fr)grid with fullProjectSummaryCard(non-compact). - Inbox reminder widget removed from dashboard —
InboxReminderWidgetand its.td-priority-projectswrapper are no longer shown in the top section. - Wide-screen widgets grid narrowed — at ≥ 1 200 px
.td-sidebar-widgetsnow usesrepeat(2, 1fr)instead ofrepeat(4, 1fr), and the first child no longer spans extra columns, giving each widget equal width. - Quick Actions toolbar removed —
TodayQuickActionsand its.td-quick-actions-wrapwrapper are removed; task creation is now initiated from the New Task nav chip.
[1.9.0] - 2026-08-12
Changed
- Home page layout refactored to full-width top-dashboard — the sticky sidebar (
<aside>) is replaced with a<section class="td-top-dashboard">that spans the full width above the main content area. The outer.td-layoutnow usesflex-direction: columninstead of a two-column CSS grid, removing the 1 024 px / 1 440 px grid breakpoints. - Responsive header row — hero text and navigation chips are placed in a new
.td-header-rowcontainer that stacks vertically on mobile and switches to a row with space-between alignment at ≥ 768 px. - Widgets area uses responsive CSS grid —
.td-sidebar-widgetschanged fromflex-direction: columnto a 1 → 2 → 4 column CSS grid (breakpoints at 768 px and 1 200 px); the first widget spans two columns on the widest layout. - Priority projects capped at two cards — the priority-projects list on the Today dashboard now renders at most two
ProjectSummaryCarditems to avoid crowding the top area. - Decorative separators removed —
border-bottomon.td-navandborder-topon.td-priority-projectsare removed; spacing is handled by gap values alone.
[1.8.0] - 2026-08-12
Fixed
- Setting a task as current now forces In Progress status — calling
SetCurrentTaskAsyncon a task that is not already In Progress now automatically transitions its status toInProgressand clears anyCompletedDate, preventing a completed task from appearing as the active focus item on the Today screen.
[1.7.0] - 2026-08-11
Fixed
- Horizontal scroll eliminated —
overflow-x: hiddenadded tobodyin bothapp.cssandbrainy-design.cssso wide content no longer causes a horizontal scrollbar on any page. - Task metadata wraps correctly on narrow screens —
.td-task-metaon the Today page now hasflex-wrap: wrapandmin-width: 0so project badges and due-date chips stack instead of overflowing. - Project label text truncated with ellipsis — the project chip inside task rows now has
white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%so long project names are clipped cleanly rather than breaking layout.
[1.6.0] - 2026-08-11
Fixed
- SignalR message size limit increased to 512 KB — the default SignalR hub limit (32 KB) was silently dropping large note pastes and crashing the circuit, causing notes to be saved without their content.
MaximumReceiveMessageSizeis now set to 512 KB on the Blazor Server hub so large notes are reliably transmitted.
[1.5.0] - 2026-08-11
Added
- Create note directly from a project — the Project Detail page now has two separate note actions: New note (opens the full note editor pre-linked to the project) and Link existing (links an already-existing note). Previously there was a single modal with two tabs.
ProjectIdparameter onNoteEditorDialog: when set, a newly created note is automatically linked to that project on save.- Note status can now be selected when creating a note (the status dropdown was previously only shown in edit mode).
- Contextual help tip in
NoteEditorDialog: shows "This note will be linked to the current project" when opened from a project, and the standard inbox tip otherwise.
Changed
- Note editing from Project Detail page now opens inline in
NoteEditorDialoginstead of navigating to a separate page; the page reloads after closing so changes are immediately visible. - Note editing from Search page now opens
NoteEditorDialogas a dialog instead of navigating away, keeping the user in context. ProjectNoteDialogsimplified to a focused "Link Existing Note" dialog; the "New Note" tab was removed in favour of the dedicatedNoteEditorDialogflow./notes/{id:guid}route now redirects to/notes?open={id}(previously redirected to/noteswithout preserving the note id), enabling deep-link support for direct note access from external links, search results, and notifications.Notespage auto-opens the editor dialog when theopenquery parameter is present, completing the deep-link flow.
[1.4.0] - 2026-08-11
Added
- In Progress widget on Today page — tasks whose status is In Progress now appear at the top of the execution flow, above Overdue and Due Today, so active work is always visible at a glance.
InProgresslist added toTodayAggregateDtoand populated byTodayService.- New
InProgressWidgetBlazor component with collapsible section, task count, and quick-action buttons (complete, edit). - On wide screens (≥ 1 200 px) the In Progress section spans all grid columns for maximum visibility.
- Today empty-state check updated to account for the new In Progress section.
- Help tip updated to mention the In Progress section in the onboarding overlay.
[1.3.0] - 2026-08-10
Fixed
- Archiving a task now clears its
IsCurrentTaskflag (TaskService,TasksHubService). - Completing or archiving a project now clears
IsCurrentTaskon all affected tasks (ProjectService). - Auto-completing a parent task when all subtasks finish now clears its
IsCurrentTaskflag (TaskService). - Completing a task via the Tasks Hub bulk-update path now clears
IsCurrentTask(TasksHubService).
[1.2.0] - 2026-08-10
Fixed
- Completing a task now automatically clears its
IsCurrentTaskflag so it no longer appears as the user's active focus on the Today screen.
[1.1.0] - 2026-08-10
Added
- Idea status lifecycle workflow (
Captured → Reviewing → Validated → Developing → Completed / Archived / Cancelled) with an expandedIdeaStatusenum. - Redesigned Idea detail page with inline status transitions, metrics, and review controls.
- Updated Ideas list page and dashboard to reflect new lifecycle statuses and filters.
UpdateIdeaWorkflowdatabase migration for the new idea columns.
Removed
ConvertIdeaToTaskDialogcomponent replaced by the new inline workflow inIdeaDetailPage.
[1.0.0] - 2026-08-10
Added
Infrastructure & architecture
- Solution skeleton with
Brainy.Domain,Brainy.Application,Brainy.Data, andBrainy.Webprojects. - ASP.NET Core Identity with cookie authentication and per-user data ownership. All principal entities carry a
UserIdforeign key; application services scope every read and write to the current user. - Entity Framework Core 10 with SQL Server, Code First migrations, and
IEntityTypeConfiguration<T>configurations. - Automatic migration on startup via
DatabaseInitializer.MigrateAsync(). - EF Core retry-on-failure resilience strategy for serverless SQL.
RowVersionconcurrency tokens on multiple tables for optimistic concurrency./healthliveness endpoint for Azure App Service health checks.- Development data seeder for local testing.
- GitHub Actions CI workflow (restore → build → test on every push and pull request to
main). - GitHub Actions release workflow: publishes
Brainy.Web, deploys to Azure App Service via OIDC authentication, and performs a/healthsmoke test.
Notes
- Note CRUD service with unit tests, Note list page, and Note editor as a MudBlazor modal dialog.
AiSummaryfield on theNoteentity.- Note image upload and serving via
NoteImageentity and dedicated streaming endpoints. - Note relationships: link notes together manually and related-notes engine with auto-refresh.
- Note archiving functionality.
- Bulk PARA category move for notes.
PARA & Inbox
- PARA domain service layer (
ParaSummaryService) and PARA Dashboard page. - Inbox capture-first workflow and bulk inbox processing with destination selection.
- Search page for full-text note lookup.
Projects
- Project CRUD service, Project list page (search, filter, sort), and Project detail page with full workspace view.
- Project entity enhanced for full PARA compliance with status lifecycle model (
Active → On Hold → Completed → Archived). - Critical, High, Medium, and Low priority levels.
- Automatic project progress calculation based on task completion.
- Project task board with Kanban view and task list view with sorting and filtering.
- Project completion workflow, archive workflow, and due date monitoring.
- Project dashboard widget.
- Notes linked to projects.
- Required Area validation enforced on Project creation and editing.
Tasks
TaskItementity with status model, priority model,CompletedDate, andTaskComplexity(Simple / Moderate / Complex / Epic) enum with a database column.- Task CRUD service.
- Subtask support with nested display, cascading completion, and overdue/due-today counts per parent.
- Inline task rescheduling across multiple widgets and a focus-picker dialog.
- Task list view with sorting, filtering, and bulk operations.
Today dashboard (Epic 9, issues #41–#80)
- Today page showing current task, high-priority project work, tasks due today, overdue tasks, tasks due this week, and upcoming tasks.
- Archived tasks excluded from all active workflows and views.
Areas (Epic 11, issues #81–#88)
- Area CRUD service, list page, and detail page.
- Emoji support for Areas.
Resources
- Resource editor and management page.
- Emoji support for Resources.
Outputs (Epic, issues #219–#239)
- Output entity with status lifecycle (
Draft → In Progress → Review → Published → Archived) and output type classification. - Output CRUD service, list page, and detail page.
- AI-assisted output generation dialog (
OutputAiGenerationDialog) using stored notes as source material.
Goals
- Goal and
GoalMilestoneentities with activity tracking. - Goal CRUD service, list page, and detail page with milestone management and activity log.
- Note and goal management enhancements (link goals to projects, progress metrics).
Tasks Hub
- Tasks Hub page aggregating tasks across all projects.
- Tasks Hub widgets with inline editing and status updates.
- Today widgets with inline editing.
Calendar
- Calendar service and calendar view for tasks and deadlines.
Quick Capture
- Quick Capture global dialog with file attachment support.
brainyCapture.jsfor browser-level capture integration.
Onboarding
- Contextual help system with onboarding dialogs for key pages (Notes, Projects, Areas, Resources, Inbox, Outputs).
Fixed
- EF Core "second operation started on this context" concurrency error in the search page and outputs widget.
- PARA summary queries run sequentially to avoid
DbContextconcurrency errors. - Greeting text on the Home page corrected to a static "Today" heading.
Changed
- AI assistant replaced by a no-op
NullAiAssistant(AddDisabledAiAssistant()); AI features are preserved but disabled by default until a provider is configured. - Note editor migrated from an inline page section to a MudBlazor modal dialog.
Removed
- Unused
TodayTaskOrderingHelper,Counter, andWeatherstub components.
Brainy