Release Notes
Track what's new in Marcomm.
v0.031.017May 22, 2026
- Content Hub filtering is now Google-Drive-style: the old fixed tabs are replaced by Type, Owner, and Modified dropdowns. Filter by file type, by who owns an item, or by when it changed — Today, Last 7 days, Last 30 days, This year, Last year, or a custom date range
v0.031.016May 22, 2026
- Your grid/list view choice now follows you across the whole Content Hub — Library, My Files, Recent, Starred, and Trash all share one setting, and everything opens in grid view by default (web).
- Bigger, clearer folder path at the top of the Library so it matches the other Content Hub pages, plus a cleaner search placeholder (web).
v0.031.015May 22, 2026
- Grid file cards now use the same ⋮ menu as folders — Star, Download, Rename, Move, and Delete all in one place
- The Move dialog now works like Google Drive: open the destination folder and create a subfolder right there with the New folder button (the old “Select this folder” button is gone) (web).
- Clicking an already-selected item now deselects it, and the selection toolbar gained a Rename action right after Download when a single item is selected (web).
v0.031.014May 22, 2026
- Selecting items in the Content Library now works just like Google Drive — a single click selects one item (clicking another clears the first), Ctrl/Cmd-click adds to the selection, and you can drag a box across empty space to rubber-band-select several at once, consistently in both grid and list views. Hover checkboxes are gone; the highlighted border shows what's selected (web).
- Every file and folder now offers five quick actions on hover or selection — Download, Rename, Star, Move, and Delete
- The selection toolbar now sits cleanly over the search and filter row at full width without nudging the page, the Owner column shows each person's profile photo and name instead of their email, and the redundant image/video/document counters at the top were removed for a calmer layout (web).
- Reorganize folders straight from the sidebar — drag a folder onto another to nest it, or onto “Content Library” to move it back to the top level. Dragging items inside the library no longer pops the upload overlay; only the folder you hover over highlights (web).
- The Storage page file list and the Trash now use the same sortable table as the Library, with Name, Owner, Modified, and Size columns you can sort by — and Trash shows the date each item was deleted (web).
v0.031.013May 21, 2026
- Content Library list view now matches Google Drive end-to-end — clicking anywhere in a row selects it (it never downloads on click anymore), the selected row keeps its quick actions visible, and the Owner column shows a profile avatar next to the name. You can drag a file onto a folder to move it, and drag a box across empty space to rubber-band-select several files at once (also in the grid view) (web).
v0.031.012May 21, 2026
- Cleaner, Google-Drive-style file cards in the Content Library grid — each card now leads with the file name and type icon in a tidy header, with the preview as the focus below and quick star/delete actions on hover. Removed the cluttered type/size/views lines so the grid reads at a glance.
- Selecting files no longer nudges the page — the selection action bar now overlays the content as a true floating toolbar without shifting the layout down (web).
v0.031.011May 21, 2026
- Grid view now shows real file previews (Google-Drive style) — PDFs and Illustrator (.ai) files render their first page as a thumbnail, text files show a snippet of their contents, and images preview as before. Previews load only as cards scroll into view and are cached, so browsing stays fast; anything we can't render in the browser (Office, PSD, HWP) keeps its type icon. Applies to the Content Library, My Files, Recent, and Starred grids (web).
- Storage usage figures now match everywhere — the sidebar meter and the Storage page are computed from the same live file total, so they no longer drift apart, and the meter refreshes as you upload or delete (web).
v0.031.010May 21, 2026
- The Content Library list view now behaves like Google Drive — clicking a row selects it (instead of immediately downloading the file), and you can drag selected items onto a folder to move them. Hovering a row reveals quick actions on the right (download, rename, star, copy link). When you select one or more items, the action bar now floats as an overlay at the top instead of pushing the page content down (web).
v0.031.009May 21, 2026
- Content Library now respects view-only access — when you open a folder you can only view, the Library hides the actions you can't take (upload, new folder, rename, move, delete, and download) and shows a clear "View only" badge, so you no longer click a button only to be told you don't have permission. You can still browse and star items for quick access, and folder settings open in read-only form for viewers (web).
v0.031.008May 21, 2026
- Content Hub list view refinements — searching in the Library now filters folders as well as files, so results stay consistent with My Files / Recent / Starred. The list view's date column is labelled "Date modified," its sorting was hardened so folders without an edit date no longer shuffle unpredictably, and the rubber-band selection box is now correctly limited to the card view (web).
v0.031.007May 21, 2026
- Content Hub list views are now a Google-Drive-style table — My Files, Recent, Starred, and the Library list view share one layout with Name / Owner / Date modified / File size columns you can click to sort, and folders and files now appear together in a single list (folders first). Each row shows who owns it. Hovering a row reveals quick actions: Download, Rename, Add to starred, and Copy link (an in-app deep link, since shared content needs a workspace login to open). Files can now be renamed in place
v0.031.006May 21, 2026
- Search, filters, and grid/list view now on every Content Hub page — the search box, All / Documents / Images / Videos filter tabs, and the card/list view switch that the Content Library has are now also on My Files, Recent, Starred, and Trash. You can search by name, narrow to a file type, and toggle between card and list layouts on each page. Trash keeps its restore and delete-forever actions in both the card and list views (web).
v0.031.005May 21, 2026
- Marquee (rubber-band) selection in the Content Library — drag a box across empty space to select multiple folders and files at once, on top of the existing Ctrl/Cmd-click and Shift-click. The selection box respects scroll position and ignores drags that start on a card or button (web).
- Storage page redesigned, Google-Drive style — the Storage view now leads with a usage bar split into Images / Videos / Documents (with a legend), and lists your files largest-first by size so you can see what's taking up space at a glance (web).
v0.031.004May 21, 2026
- Folder roles are now clearly defined and enforced — Owner can do anything; Manager can do everything except transferring ownership and deleting the folder itself (add members, read, delete files, download, upload, rename, move); Viewer can only view (no download, no upload, no delete). The folder settings modal was simplified to match: the "Manager can share" and "Download / copy / print" toggles were removed because behavior is now fixed by role. Direct Viewers can no longer download or delete files (web).
- "Agency access" renamed to "External collaborator access" — clearer wording for partners you've invited into your workspace, and a display bug was fixed where the toggle showed "on" while disabled on private folders (private folders are members-only regardless of the toggle, and that's now reflected) (web).
- External collaborators keep read access where allowed — when a folder permits external collaborator access, those collaborators can still view and download its files (their core need), while direct workspace Viewers are held to view-only. The two policies were carefully separated so neither weakens workspace isolation (web).
v0.031.003May 20, 2026
- Drag-and-drop and multi-select in the Content Library — select multiple folders and files (Ctrl/Cmd-click to toggle, Shift-click for a range, or the hover checkbox), then download, move, star, or delete them all at once from the selection bar. Drag any selection onto another folder card or onto the sidebar folder tree to move it, with the 3-level depth and circular-move guards enforced. Every bulk action respects per-folder permissions
- Folder card kebab menu is now vertically centered — matching Google Drive, the ⋮ menu sits at the middle-right of each folder card instead of the top corner (web).
v0.031.002May 20, 2026
- Your public newsroom now speaks all 14 languages — every page of your published newsroom (homepage, press releases, our story, notices, press kit, media library, search, and category pages) now renders in the language you configured for the newsroom, instead of falling back to hardcoded text. A reader visiting a Japanese-configured newsroom sees Japanese throughout; a German one sees German. All UI labels, empty states, and counters were moved into a single 14-locale label set with byte-identical placeholders (web).
- Newsroom mobile navigation + copy-link — the public newsroom gained a proper mobile hamburger drawer (replacing the old horizontal-scroll nav that hid items off-screen) and a copy-link button on press release pages that copies the canonical URL with a brief confirmation. Media library downloads now stream with correct attachment filenames including Korean/Japanese characters (web).
v0.031.001May 20, 2026
- Content Hub is now a full Google-Drive-style file manager — the sidebar now shows your folder tree (up to 3 levels deep) right under Content Library, expanding and collapsing inline and updating live as you create, rename, move, or delete folders on the right. Press Kits was promoted out of the Content Hub submenu to its own top-level sidebar item. The whole content area was rebuilt around folders-as-a-first-class-object (web).
- Folder cards now have a kebab (⋮) menu — Download, Rename, Move, Delete, and Star, matching Google Drive. Download zips the entire folder (subfolders and files, preserving the folder structure, with correct Korean/Japanese filenames) and streams it to your browser. Rename and Move open focused modals (Move enforces the 3-level depth limit and blocks moving a folder into its own descendant). Delete asks you to type the folder name to confirm. Every action respects your folder permissions (web).
- Per-folder agency access control — when you've invited an external agency to collaborate inside your workspace, you can now decide folder-by-folder whether those agency collaborators can see each folder. The toggle lives in folder settings; restricted folders stay members-only regardless. This is access control for people already inside your workspace
- Trash with 30-day recovery — deleting a folder or file now moves it to Trash instead of erasing it. The new Trash page (Content Hub → Trash) lists deleted folders and files with who deleted them and when, lets you Restore (back to its original location, or the root if the parent is gone) or permanently delete, and Empty Trash in one click. Everything is purged for good after 30 days automatically. Folders show "—" for size, matching Drive (web).
- Four new Content Hub views — My files (only what you own), Recent (your latest files), Starred (everything you've starred), and Storage (a usage bar showing how much of your workspace quota is used, with a Get more storage link). The sidebar's bottom section now carries My files, Recent, Starred, Trash, and Storage with a live storage meter (web).
- Built workspace-isolation-first — every new surface (folder tree, kebab actions, zip download, agency access, trash, the four views, star) was audited by an independent cross-QA panel against the workspace-isolation gate: zero cross-workspace leakage, agency collaborators see only what each folder allows (including inside zip downloads), and trashed items never surface in any list, tree, search, or download. 1,002 automated tests pass (web).
v0.030.025May 15, 2026
- Account security score now reflects 2FA and passkeys — the security score on your Account Overview was tallying only the four sign-in methods (email verified, password set, Google linked, Microsoft linked). Adding TOTP (authenticator app) and a WebAuthn passkey now actually raises the score, which is now out of 6 instead of 4. (Also caught a stale comparison that always counted email-verified as true regardless of the underlying value.) (web)
- Sign out from all devices now asks first — clicking the workspace-wide sign-out used to immediately end every session on every device including the one you were on; one accidental click and you were locked out of everything. The button now opens a confirmation dialog explaining what's about to happen, with Cancel and Confirm buttons, before any session is touched. Translated into 14 languages (web).
- Disabling TOTP now warns when it would leave you without a second factor — the Account Security page used to allow you to turn off TOTP even if you had no passkey and no remaining backup codes, leaving the account with no second-factor protection at all. Now both client and server require an explicit acknowledgement when there's no fallback, and the warning dialog suggests adding a passkey first (web).
- Country and timezone pickers in Profile now have search — the country and timezone selects were plain HTML dropdowns with hundreds of entries and no way to search. A new searchable picker (search field pinned to top, filtered list, keyboard-navigable, ESC and outside-click close) replaces both. Language stays as a regular select since there are only fourteen options (web).
- Account Sessions list now paginates and shows password "Last changed" date — the sessions list was capped at 50 silently; it now paginates at 25 per page with Prev/Next + count footer (only shown when there's more than one page). Separately, the Password row in Account Security now shows when you last changed your password
- Backup codes can be downloaded or printed — the post-enrollment backup codes panel now has Download (saves a dated text file) and Print (opens a print-friendly window, falls back to the page itself if popups are blocked) buttons next to the existing Copy. (Visually striking through already-used codes is deferred to a later update.) (web)
- Account Preferences page now has a Theme picker — the Theme toggle existed in the workspace header but not on the Account Preferences page; you can now change it from either place. (Two options
- How we found these — the workspace owner's manual feature inventory was auto-checked against the actual code for H1 through H9 (Account Overview, Profile, Security, Sessions, Notifications, Preferences, Privacy, Organizations, sidebar). 179 checkboxes / 115 passed / 29 mismatches. The 8 fixes above are all real account-experience gaps. The remaining mismatches are larger Account features (Email change inline modal, Password change inline modal, Privacy public-info controls) that need their own design rounds. Test count: 895 passing across 92 files (web).
v0.030.024May 15, 2026
- Console Per-Workspace People list now paginates — for workspaces with hundreds of members, the per-workspace People page in Console used to fetch and render every member at once. The page now paginates server-side at 50 per page with Prev / Next controls and a "Page X of Y (N total)" footer. Owner row is fetched separately so it's always visible regardless of which page you're on. Localized into 14 languages (web).
- Console Audit Log row-click opens a detail modal — clicking any row in the per-workspace Audit Log now opens an accessible dialog (role="dialog", aria-modal, ESC + outside-click + X button to close) showing the full event: action, actor, target + target ID, IP address, timestamp, and a JSON-pretty-printed payload (with a friendly fallback when the payload is empty). Keyboard navigable. Translated into 14 languages (web).
- Console Audit Log now has a date range filter — From and To date pickers (native HTML date inputs with cross-validation), an Apply button, and a Reset button that clears just the dates while preserving the rest of your filters. The page validates that From ≤ To before applying, and the page-link carry-through preserves the date range when you flip pages (web).
- Console Storage usage now shows the percentage — the per-workspace Storage page already showed used and total bytes, but not the percentage. A small "X% used" indicator now sits next to the bytes label so you can read at a glance whether you're at 12% or 92% of quota. Localized into 14 languages (web).
- How we found these — the workspace owner's manual feature inventory was auto-checked against the actual code for G1 through G9 (Console Per-Workspace pages: Overview, People, Billing + 5 sub-pages, Audit Log, Security, Storage, Settings, Upgrade Requests, Console Shell). 156 checkboxes / 72 passed / 59 mismatches. Most mismatches were either inventory drift from an earlier sidebar consolidation or the larger billing integration work that's pending owner direction (so deliberately not picked up in this autonomous cycle). The 4 fixes above are real workspace-Console gaps that are now closed. 21 new translation keys × 14 locales = 294 new translated strings. Test count: 895 passing across 92 files (web).
v0.030.023May 15, 2026
- Console security posture score now matches what the server actually computes — the Console security page showed a posture-score preview that updated live as you edited domain and MFA settings, but the client-side calculation was missing the 15-point weight for whether a backup admin had been designated. So the live preview disagreed with the score the server stamped on save by up to 15 points. Both calculations now share the exact same weight breakdown (40 base + 20 MFA + 30 domains + 15 backup admin + 15 short session = 100). The color thresholds also moved from green-at-≥70/amber-at-≥40 to green-at-≥75/amber-at-≥50, which is the more conservative bar a security display should set (web).
- Console Hub recent activity and Audit Log timestamps now follow your language — the recent-activity feed on the Console Hub root and the timestamp column in the Audit Log were rendered with the browser default locale instead of the workspace's UI language, so a Korean console still showed English/American date format. Both pages now use the shared locale-aware date formatter, so each language renders dates and times in its own conventional format. (web).
- Console Billing Accounts workspaces list now reacts to hover — the connected-workspaces cards on the Billing Accounts hub page sat as flat gray boxes with no hover affordance, making it unclear they were interactive. They now darken slightly on hover (with a smooth color transition) so the click target is obvious (web).
- Console People search has clear-X, debouncing, and workspace links — the People search box on the Console Hub gained a Clear (X) button that appears once you've typed something, switched its filter from immediate-on-keystroke to React-19's deferred-value scheduling so a long contact list doesn't lag behind keystrokes, and the workspace membership rows in the right detail panel are now clickable links that take you straight to that workspace's per-org People page in the Console (with a small external-link glyph on hover so you know you're navigating cross-workspace) (web).
- Console People detail now links to the user's own Account settings — for the row that represents you (the viewer), the People detail panel shows an "Account settings" link that opens account.marcomm.work/profile. (Hidden for other users
- How we found these — the workspace owner's manual feature inventory was auto-checked against the actual code for F1 through F6 (Console Hub root, People, Billing Accounts, Audit Log, Security, Storage). 92 checkboxes / 78 passed / 26 mismatches. The 7 fixes above are all real bugs and UX gaps; the rest were stale inventory items reflecting an older design (workspace count instead of email, wrap instead of horizontal scroll, etc.) which the inventory itself was updated to match. Larger missing functionality on the F5 Security page (the backup-admin assignment UI, the primary-organization selector dropdown, MFA radio's instant-save, and the action-items severity badge linking) deferred to follow-up phases. Test count: 895 passing across 92 files (web).
v0.030.022May 15, 2026
- Workspace Identity form is now translated — the Identity settings form (Organization name, Workspace slug, Email, Phone, Website, Country, Address, Save changes button, plus the success and failure toasts) used to render English regardless of UI language. All eleven strings are now translated natively in 14 languages (web).
- Add Task dialog is translated — the workspace Todos add-task dialog (title input, type picker label, Cancel button, Adding… progress label, Add Task button) was English-only. All five strings now translated in 14 languages (web).
- Newsroom infrastructure sub-page titles are translated — the Basics, Domain, Images, Template, and SEO settings sub-pages each had a hardcoded English page title. All five page titles now translated in 14 languages (web).
- Settings breadcrumb "Admin" label is translated — the breadcrumb on Identity, Email Infra, and AI Defaults pages showed "Admin" in English. Now uses each page's localized breadcrumb label (web).
- Settings redirect stubs upgraded to 308 Permanent Redirect — eleven settings sub-routes (Members, Billing + sub-pages, Audit Log, Security, Storage, Newsroom Infra hub) now redirect to their canonical Console destinations using 308 Permanent (was 307 Temporary). 308 tells search engines and browsers "this URL has moved permanently, update your records"
- Appearance + Notifications settings pages now look right in dark mode — the Appearance page header text and the Notifications placeholder card had no dark-mode variants, so they rendered as black-on-white inside a dark sidebar. Both now have proper dark-mode styling (web).
- How we found these — the workspace owner's manual feature inventory was auto-checked against the actual code for D11 (Todos) and E1 through E13 (Workspace Settings: Hub, Identity, Appearance, Newsroom Infra hub + 5 sub-pages, Email Infra, AI Defaults, Notifications, plus the redirect stubs to Console). 247 checkboxes / 204 passed / 41 mismatches. The 17 i18n gaps + the 11 redirect stubs + the 2 dark-mode gaps above are all fixed in this release. Larger missing functionality (E6 SSL verify button + E10 sender verified/pending badges + E2 slug-change OWNER warning + E9 GA4 prefix validation) deferred to follow-up phases as each is a substantial page-specific build. 24 new translation keys × 14 locales = 336 new translated strings. Test count: 895 passing across 92 files (web).
v0.030.021May 15, 2026
- Sidebar now exposes Newsroom Custom Layout and Monitoring Articles directly — the custom-layout newsroom builder existed at /newsroom/custom-builder and the monitoring articles list existed at /monitoring/articles, but neither showed up in the sidebar
- Custom Layout builder finally has a Cancel button — the newsroom custom-layout editor only had an arrow icon to back out, with no labelled Cancel option. A proper "Cancel" button now sits next to Save so the cancel/confirm pair reads conventionally. Localized into 14 languages (web).
- Monitoring overview page is fully translated — eighteen English strings on the workspace Monitoring landing (the four stat-card labels, the table column headers, "View all", "Add keyword", error toasts when adding fails, the empty-state hint, and the page-N-of-M pagination) used to render English regardless of UI language. All eighteen are now translated natively in 14 languages, with proper ICU placeholders for plural counts (web).
- Notifications page total and pagination now follow your language — the "X total" subtitle and the "Page X of Y" footer were the last English-only strings on the workspace notifications page. Both are now translated in all 14 languages (web).
- How we found these — the workspace owner's manual feature inventory was auto-checked against the actual code for D6 through D10 (Newsroom, Newsroom Custom Builder, Monitoring overview, Articles, Competitors, Media Analysis, Social, Market Intelligence overview, Stock Detail, Members, Notifications). 79 checkboxes / 55 passed / 25 mismatches
v0.030.020May 14, 2026
- Dashboard AI credits panel now tells you when credits reset and that they don't carry over — the panel showed only the current balance and an upgrade button. Two short lines now appear under the balance: "Resets {date}" with the next reset date in your locale, and "Credits don't carry over" so you don't expect last month's leftover credits to roll forward. Both lines translated natively in 14 languages (web).
- Dashboard error banner now has a close button — when the dashboard data fetch failed, an error banner appeared with no way to dismiss it. The banner now has an X button (with a localized aria-label "Close"), and a friendly fallback message replaces the previous silent failure when the response itself returns an error (web).
- Press release detail thumbnails actually render — when a press release had a thumbnail attached, the detail page showed a placeholder icon instead of the real image. The page now fetches the image from the workspace-scoped file endpoint (preserving auth) and falls back to the placeholder if the image fails to load (web).
- Email Dispatch list now has a search field — the campaigns list could only be filtered by status tab. A search input is now pinned at the top of the page; it filters by subject and linked press-release title with a localized placeholder. Empty results show a distinct "No matches" hint instead of the generic empty state. (Date range and sort controls deferred to a follow-up release.) (web)
- Email Dispatch detail now shows the actual message body — the campaign detail page showed recipients and stats but not the message that was sent. A new collapsible "Message body" card sits between the progress bar and the recipients table; clicking it reveals the rendered HTML body, sanitized through the same allowlist used for press-release previews (web).
- Smaller polish — fixed a Tailwind class typo on the press release detail's distribution-method radio cards (the trailing /50 in bg-[#7B2FF2]/5/50 was an invalid second opacity modifier that Tailwind silently dropped, so the hover background never rendered). Same typo on the AI press-release accordion's hover background also fixed. Test count: 895 passing across 92 files (web).
v0.030.019May 14, 2026
- Workspace header time labels follow your language — the global header used to format "X minutes ago" / "3 hours ago" with English-only date helpers, so a Korean or Japanese user saw English timestamps in their language otherwise. The header now reuses the shared locale-aware date formatter (which already serves the dashboard from a previous release), drawing from the existing 14-language time vocabulary (web).
- Press release inline comments timestamps now follow your language — the same English-only helper was duplicated inside the inline-comments panel on the press release detail page. The panel now reads from the shared formatter so comment times render in your language too (web).
- AI press-release model labels are translated — the Light / Standard / Premium model picker on the AI press-release generator showed English labels in every locale. Each tier is now translated natively in all 14 supported languages. The underlying model identifiers stay as-is because they are vendor brand names (web).
- Press kit detail page is fully translated — the previous release translated the page's tab headers; this release finishes the job by translating the rest of the page (Back to press kits, Save buttons, Mission / Vision / Revenue / Add buttons, executive cards, Name / Title / Email / Phone fields, empty states, and helper paragraphs about media and linked press releases). Reuses translation keys that the press-kit list and create pages already had
v0.030.018May 14, 2026
- Press Release Edit page is now translated — the form to edit an existing press release was the last big page still showing English-only labels and buttons. The 'New' page had been translated long ago, leaving an awkward asymmetry: a Korean user could draft a new release in Korean but jumped to English when they came back to edit it. Edit now uses exactly the same translations as New across all 14 supported languages
- Press Release status labels are now translated everywhere they appear — Draft, In Review, Scheduled, Published, and Rejected were hardcoded English in the list view, the kanban column headers, the calendar view, and the status filter dropdown. All five labels now follow your language. The calendar's weekday headers also stopped being hardcoded in a single language
- Press Release detail sidebar fully translated — 47 strings on the right-hand sidebar (Distribution Method, Approval Settings, Add Approver, To/CC/Subject/Body composer, Load from template, Attachments, Distribution Schedule, Request Approval, Distribute, Awaiting Approval, Save Draft, plus 14 error and success toasts) were all English-only. Every one is now translated natively into 14 languages, with the right pluralization for messages like "Distributed successfully to 12 recipients" (web).
- Press Kit detail tabs are now translated — Overview / Company / Key Executives / Media / Press Releases tab labels on the press kit detail page were hardcoded English. They now reuse the same 14-language translations the Press Kit list and create pages already had (web).
- Email Dispatch status badges and pagination labels are now translated — the status pills (pending, processing, completed, failed, cancelled, sent, bounced) and the "Page X of Y (Z total)" footer on the email dispatch list and detail pages were displaying raw English. All seven statuses and the pagination format are now native in 14 languages (web).
- Dashboard activity feed reads in your language — recent activity items used to show "Press Release Create" or "Contact Update" by string-shaping the raw event name. They now look up a proper localized verb per event type (created / updated / deleted / etc.) with proper sentence flow per language. The User / System actor labels were also English-only and now follow your locale (web).
- How we found these — the workspace owner's manual feature inventory was auto-checked against the actual code for the Workspace App pages D1 through D5 (Dashboard, Press Releases list/new/detail/edit, Content Hub library and press kits, Press CRM contacts and groups, Email Dispatch). 254 checkboxes, 219 passed, and 30+ of the 55 mismatches were these untranslated strings
v0.030.017May 14, 2026
- Sign-up password rule actually rejects spaces — the "no spaces" rule on the sign-up form was checking only the leading and trailing edges, so a password like "pass word123!" would slip through. Now it rejects any whitespace anywhere (regular spaces, tabs, line breaks). The label was also tightened to read "No spaces" (was "No leading/trailing spaces") in all 14 supported languages so the visible rule matches the actual check (web).
- Reset Password now enforces the same rules as Sign Up — previously the reset flow only checked length (≥ 8 characters) while Sign Up required a digit, a special character, and no whitespace. Forgot-password recoveries are now held to the same bar, with the same 4-cell rule grid and the same 14-language labels (no new strings
- Verify-email "Resend in 0s" no longer shown — when the resend endpoint returned a rate-limit response with a zero-or-missing cooldown, the form previously displayed "Resend in 0s" which read like a bug. The form now falls back to a generic "Could not resend code. Please try again." toast (translated natively into all 14 languages) when the cooldown is non-positive, and keeps the live countdown only when there's actually time left to wait (web).
- Onboarding placeholders now follow your locale — the workspace name and slug input placeholders on the create-workspace step were hardcoded to "My Company" / "my-company" English. The workspace name placeholder is now translated natively in all 14 languages; the slug placeholder stays as "my-company" everywhere because URL slugs are ASCII-only by design (web).
- How we found these — the workspace owner's manual feature inventory (a checklist of every page and feature) was auto-checked against the actual code for the Authentication and Onboarding sections. 163 checkboxes, 149 passed, 13 marked as needing visual review, and the 11 mismatches above were all real bugs or missing translations. Test count: 895 passing across 92 files (web).
v0.030.016May 14, 2026
- Release notes security sweep — a few older entries still named specific internal endpoints and audit-event identifiers that have no business on a public marketing page. Those references have been generalized to outcomes ("a sign-out endpoint", "a session-invalidation entry") without losing the customer-visible meaning of each change. A pre-existing internal-newsroom subdomain reference was also rewritten to a neutral phrase. A full sweep against 22 sensitivity categories (internal source paths, database column/table names, migration filenames, internal API routes, environment variable names, cron-script filenames, infrastructure region or provider SKUs, error / vulnerability codes, internal phase codenames, commit hashes, auth cookie internals, internal admin domain) now reports zero matches across the entire release-notes timeline. The page reads as customer-facing changelog only.
v0.030.015May 14, 2026
- Page error screen no longer English-only — when a workspace page crashes the rendered fallback ("This page failed to load" + Try again / Go home buttons) is now translated into all 14 supported languages. The error digest itself stays as-is so it remains a copy-paste-able support identifier (web).
- Stub pages now route Back-to-dashboard inside the workspace — both "Direct membership required" and "Admin access required" stubs receive the workspace prefix from their host page, so the primary button takes you straight to that workspace's dashboard (one fewer hop than the previous post-login bounce). The Admin-required stub also gains a discoverable "Back to settings" secondary action that lets you find another settings page where you may have admin. 14 page files now pass the prefix prop, and a new source-grep contract test catches future X-class pages that forget it (web).
v0.030.014May 14, 2026
- Agency-mode polish across every navigation surface — when you're viewing a managed client through your agency, the workspace Settings link is now hidden in all four places it appears (the desktop sidebar, the mobile slide-out menu, the header avatar dropdown, and the app-switcher tile grid). Previously each round of QA caught one more surface that still leaked the dead-end link; this release closes the last two (mobile menu + header avatar). The decision is to hide rather than disable-with-tooltip
- Mobile menu no longer hides under the agency banner — the slide-out mobile navigation now sits below the indigo "Viewing as agency" banner instead of being occluded by it. Direct workspace owners (no banner) see no change (web).
- Date and time strings now follow your locale on every page — Monitoring, Todos, Reports, Invoices, Email Dispatch, Credits, Notifications, Press CRM contact details, Press Releases, plus the Console billing pages and Account Settings (sessions, organizations, security) all stopped using hardcoded en-US formatting. Korean / Japanese / German users now see dates the way they expect everywhere, not just on the dashboard. A new shared formatter (lib/date-format.ts) is the single source of truth, plus 16 locale-aware tests pin the contract (web).
- Direct membership and Admin access stubs are now keyboard-navigable — both "Direct membership required" (indigo) and "Admin access required" (amber) stub pages now ship with a focusable "Back to dashboard" primary button and a context-appropriate secondary action ("Switch workspace" for direct-required, "Back to settings" for admin-required). Tab navigates them; Enter activates. Translated natively into all 14 supported languages. Screen reader users finally have a way out of the stub (web).
- Deep links survive sign-in — if you click a shared link to /<workspace>/monitoring/articles before signing in, we now route you back to that exact page after sign-in instead of bouncing you to the dashboard. The path is validated against an open-redirect allowlist (must start with the same workspace slug; URI-encoded segments are decoded before matching; protocol-relative and external URLs are rejected). Sign-up and verify-email also honor the same callbackUrl now. Twenty new dedicated tests pin the validator against typical attack vectors (web).
- Smaller polish — the 404 / not-found page is now translated into 14 languages instead of being English-only; the deep-link validator falls back closed (to the workspace dashboard, never undefined) on any malformed URI. Test count: 863 passing across 91 files (web).
v0.030.013May 14, 2026
- Agency dashboards now actually work end-to-end — v0.030.011 fixed the workspace shell, v0.030.012 fixed the API routes, and this release fixes the 21 server-rendered pages in between (Monitoring → Articles, Press CRM → Contacts, Press CRM → Groups, Crisis incident detail, Crisis manual entries, Todos, profile pages, plus 13 settings pages) that were still doing their own direct-membership check and bouncing agency-only members back to /sign-in. Now: client-data pages render normally with the indigo "Viewing as agency" banner, and direct-membership-only settings pages render a friendly "Direct membership required" stub instead of a 404 or sign-in loop. Full Round-2 virtual-user QA repro passes (web).
- Sidebar and AppSwitcher hide what won't work in agency view — when you're viewing a managed client through your agency, the sidebar drops the Settings, Members, and Console links (they were direct-only and would have dead-ended), and the header app-switcher's Console tile is omitted from its grid (which adapts from 3 to 2 tiles). Direct workspace owners see no change. The decision is to hide rather than disable-with-tooltip
- Two stubs with honest copy — admin-only settings pages (Identity, Appearance, AI Defaults, Email Infra, Storage, plus 5 Newsroom Infra sub-pages) now render two distinct stubs depending on the actual reason: an indigo "Direct membership required" stub for agency-parent visitors, and a separate amber "Admin access required" stub with a Lock icon for direct members who lack the admin role. Pre-9BJ they both got the wrong copy ("ask the workspace owner to add you as a direct member"
- Localized error when a write is blocked in agency view — when an agency-parent member tries to write to a managed client, the API still returns 403 with code agency_implicit_write_denied, and forms now read that code and show a localized message ("Read-only as agency
- Smaller polish — the dashboard's date strings now respect your selected language (Just now / 5m ago / 2h ago / 3d ago and the date-formatter all use your locale instead of always en-US, with native translations of the time-ago vocabulary in 14 languages); the billing API route had a @ts-nocheck directive removed that was masking a bogus membership.user.email reference (would have crashed the first checkout attempt) plus a dead OR-clause on a non-nullable schema field; and 13 new tests pin the agency-aware stub branching, sidebar visibility, and AppSwitcher tile contents so a regression in any of these can't ship silently. Test count: 813 passing across 87 files (web).
v0.030.012May 14, 2026
- Agency dashboards now actually show your clients' data — v0.030.011 fixed the workspace shell so an agency-only member could open a managed client; this release fixes the 102 individual data-fetch routes (press releases, media contacts, crisis incidents, monitoring articles, newsroom stories, reports, dashboard widgets, and 16 more areas) so each panel inside that shell now renders client data instead of "Failed to load." Reads succeed; writes are still server-blocked with a clear 403 ("Agency members have read-only access
- Sensitive workspace settings stay direct-only — billing, members, security, security-policy, SMTP, sender-emails, transfer-ownership, convert-to-agency, folder permissions, notifications and 13 more settings routes were deliberately excluded from the agency-parent read path. An agency-parent member trying to read these gets the same 403 a stranger would. So the dashboard sees what it needs; the settings vault stays sealed (web).
- 37 new agency-vs-direct API tests + the existing 53-scenario isolation matrix all green — every refactored route is now asserted from four angles (direct member reads, agency-parent reads, direct member writes succeed, agency-parent writes are 403'd with the agency_implicit_write_denied code) so a regression in the read/write separation can't ship silently. Test count: 782 passing across 85 files (web).
- Smaller polish — 16 GET-only routes had a dead `denyAgencyImplicitWrite` import pruned (no behavior change, just clean code), and the admin-policies role-check error body was reverted from "Insufficient permissions" back to "Forbidden" to keep response bodies byte-identical to pre-9BI clients (web).
v0.030.011May 14, 2026
- Workspace isolation, three layers deep — every child-entity route now first proves the parent belongs to your workspace (so a wrong-org id returns 404 instead of leaking that the row exists), every child-entity write on an agency workspace is blocked at the API (not just hidden in the sidebar), and the perimeter middleware adds a workspace-slug sanity check on every request. 64 new automated isolation tests cover the matrix of (your-org, other-org, agency-parent, anonymous) × every major route group, so a regression in any single layer can't silently leak data
- Critical fix: Agency mode now actually opens client workspaces — clicking a client in the agency client switcher was bouncing agency-only members back out, because the workspace layout only checked direct membership. The layout now falls through to the agency-parent path and renders the client shell with an indigo "Viewing as agency: <Agency name>" banner so it's never ambiguous which workspace you're in. The existing impersonation banner flow is byte-for-byte unchanged (web).
- Crisis detection now runs hourly — the scheduled crisis-detection job moved from a daily cadence to hourly, closing the up-to-24-hour detection window the daily schedule had been leaving open. Detection now reacts within the hour instead of once a day (web).
- Your browser language now wins on the first visit — the middleware no longer overwrites a fresh visitor's locale with English. If your `Accept-Language` header preferences a supported language (Korean, Japanese, German, etc.), the cookie is set to that language for the very first request. Sign-in and the other auth pages also gained a language switcher in the top-right corner so first-time visitors can change language without authenticating first (web).
- Report builder warns when M17 PR ROI / M16 rate-card AVE need more data — these two blocks were silently dropping out of generated reports when cost inputs or outlet profiles hadn't been configured yet. The builder now shows a small amber chip on the affected block card
- Smaller polish — 4xx responses from /api/reports/shared/[token] now carry x-robots-tag: noindex on every error path (not just success), the crisis-detection cron route's doc-comment was corrected to match its actual schedule, and 14-locale UI strings cover the new agency-parent banner and the requirement chips natively (web).
v0.030.010May 14, 2026
- Convert your workspace into an agency — owners can now flip a workspace from a regular tenant into an agency control plane from Settings (only when the workspace has no tenant data, no parent agency, and no managed clients yet). Once converted, the sidebar swaps from the usual press-release / monitoring / newsroom sections to Agency Dashboard / Bulk Reports / Clients, and direct creates of tenant data are blocked at the API with a clear 403 (web).
- Manage child-client workspaces from the agency — create new clients or link existing ones (both-owner consent), see all clients in one list with their status, unlink any time. Each client keeps its own membership and remains independent if the agency is later deleted (web).
- Shared report templates that flow agency → clients — agency members can now mark a report template as "Share with my clients". Clients see the shared template as read-only with a clear badge, and a one-click "Duplicate to my workspace" creates a private fork they can edit. Edits to the original by the agency don't disturb client forks (web).
- Bulk-generate executive reports for many clients at once — pick a template (a shared one or each client's default), pick the period and audience and locale, tick which clients to run for, and watch a live progress page as up to 5 clients render in parallel (5-second polling). Per-client failures stay isolated; "Retry failed" reruns only the ones that didn't make it (web).
- Aggregated agency dashboard — one screen across all your managed clients shows total active clients, recent generated reports, open crisis incidents, and the last few bulk runs. Clients themselves see a small "Managed by <agency>" banner so they know who's overseeing them (web).
v0.030.009May 14, 2026
- Outlet profiles, with reach and rate cards — a new Outlet Profiles section in Report Settings lets you maintain per-outlet tier (A/B/C), estimated reach per article, and a rate card per format (print column-inch, broadcast second, online pageview). Marcomm AI ships with 100+ Korean and Japanese outlets pre-loaded as read-only seeds; your workspace can override any of them with your own values, and the override wins. Used by the M08 Estimated Reach and the more precise M16 AVE blocks (web).
- PR cost inputs and the precise PR ROI block — a new Cost Inputs section captures your PR-team monthly cost, agency retainer, and distribution costs per period. The previously-locked M17 PR ROI block now unlocks: ROI = (sum of M16 AVE in the period + the retained-coverage AVE from your M22 Top-5 favorable articles) ÷ (sum of cost inputs prorated to the period). Marked as an estimate, with the cost-input scope spelled out (web).
- Press releases linked to their resulting articles — a new lightweight matcher runs at crawl time and on each press-release distribute: title similarity + date proximity + URL substring (composite ≥0.7) wires articles to the press release that produced them. The M05 Clip Rate block now uses this real link instead of a keyword approximation, and drops the "estimate" label once you have at least 5 press releases in the period with at least 60 % linked (web).
- PowerPoint export, branded covers, and brand-colored charts — every executive report can now also be exported as .pptx (one block per slide, 16:9, branded cover) alongside HTML and PDF. The PDF cover and pages now embed your registered logo (PNG or JPEG up to 5 MB; falls back to the wordmark on any error), and chart series colors are derived from your registered primary color via HSL rotation across the M04 / M07 / M13 blocks (web).
v0.030.008May 14, 2026
- Executive reports now include crisis-aware questions — when the report period overlaps with one or more Crisis War Room incidents, the AI also pre-writes 1–2 questions your executives are most likely to ask about the crisis (peak severity, response time, impacted articles). They render with a red Crisis chip in the viewer and the report's exec-Q&A appendix, sorted to the top so the highest-risk question is first (web).
- One-click re-translate any report — a finished executive report can be re-translated into another supported body language without re-gathering the data: the new sibling shares the same source snapshot and gets its own webview link and PDF in the new language. Three credits per re-translate. The report viewer now shows sibling locale tabs and a "Re-translate to ▾" dropdown for editors and above (web).
- Reports now also speak Simplified Chinese and Traditional Chinese — the body-language axis grew from 3 to 5 (Korean, English, Japanese, Simplified Chinese, Traditional Chinese). The builder, the auto-send schedule, and the re-translate dropdown all expose the new locales; covers and chart text use the appropriate Chinese web fonts; the auto-send email body is native in all five (web).
- Fixed — restored the executive-report listing, detail and translate API routes that had been silently excluded from production deploys since v0.030.003 by a too-broad `.gitignore` pattern. The reports hub and viewer now actually load remote data instead of hitting 404s. Tightened the gitignore rule to only target the Prisma client output (web).
v0.030.007May 14, 2026
- Know who your friendly journalists are — every contact in Press CRM now carries a tone score from 30 days of monitoring (recency-weighted, sample floor of 3), shown next to the Tier badge as a chip
- War Room now recommends a response for each journalist on the incident — using each contact's tone score, the new "Recommended response by journalist" panel splits the matched journalists into background briefing (friendly), official statement (neutral), and no comment (adversarial), with a one-line rationale per row and a Confirm button that logs the response. Articles whose author didn't resolve to a contact go into a separate "Unknown" section so they aren't lost (web).
v0.030.006May 14, 2026
- Crisis post-mortems and a Crisis Manual that learns over time — when you close an incident, Marcomm AI now drafts a structured post-mortem in the background (summary, what worked, what didn't, lessons learned, recommended Q&A additions, recommended banned phrases, recommended template tweaks), and once you review and finalize it, the entry lands in your workspace's Crisis Manual
- New incidents now cite the most similar past ones — the same matcher that picks a crisis-type template also picks the top-3 most similar past entries from your Crisis Manual (deterministic scoring on template kind, keyword overlap, recency, and now sentiment proximity to the past peak), and Marcomm AI grounds the Q&A draft in those cases. The incident page shows a "Similar past incidents" panel above the Q&A while OPEN, and a small "Cited: Nov-2025 product-recall" badge under each answer that points at the Manual entry the AI drew on (web).
v0.030.005May 13, 2026
- Crisis alerts respect your channel choice — turning off in-app alerts no longer also silences email, and vice versa. The crisis settings page also blocks saving an all-channels-off combination when there are recipients (web).
- Executive report share links work — the link in the auto-send email and the "Copy share link" button on the report viewer now resolve correctly; the same URL was previously hitting a 404 page (web).
- Report settings polish — the workspace logo is now a file picker with thumbnail preview instead of a raw file id, the failed-report rows on the reports hub now show a red badge with Retry and Delete buttons, and the "Extend share to 180 days" button only appears for admins now instead of failing silently for everyone else (web).
- Auto-send cron no longer double-emails — when Vercel retries the monthly cron after a transient failure, the executive recipients no longer receive the same report up to three times. The first run of each new period is unaffected (web).
- Smaller polish across the app — multi-line composer for incident timeline notes, locale-aware timestamps in the war room, more banned-phrase seed words across the supported languages (English, Korean, Japanese, and others
v0.030.004May 13, 2026
- Crisis-type templates — Marcomm AI now ships with five built-in crisis templates (product recall, executive scandal, financial allegation, data breach, labor dispute), each with its own Q&A skeleton, hour-1 / hour-4 / day-1 checkpoints, recommended exec-statement points, and the legal-risk phrasing categories to extra-watch. When a new incident opens, Marcomm AI matches the most-similar template (deterministic, no AI call) and pre-loads its skeleton alongside the Q&A draft generated from your past Q&A decks. The incident page header shows a template chip
v0.030.003May 13, 2026
- Executive reports — a 25-block library for PR reports to the board, 21 ready now and 4 coming, with a 3-question onboarding (company type, what your executives care about, length) that AI-curates an 8–12-block layout you can then drag-reorder, configure block by block, and save as your workspace's standard template. Generate it for any period (last month by default) for an executive audience (big numbers, trends) or working level (full article-by-article tables) in Korean, English, or Japanese, export it as a webview link and a PDF, set a monthly auto-send to the CEO/CFO/board, theme the cover and charts with your registered logo and primary colour, and turn on "executive Q&A prep"
v0.030.002May 13, 2026
- AI credit balance, in plain terms — the credits page and dashboard widget now lead with "≈ N more press releases this month" computed from your balance and your default model. The raw count and progress bar stay visible underneath, with an "(or N at Premium / M at Standard)" hint (web).
- Smarter AI model pick — the press-release editor now suggests the right model right next to the picker ("Premium recommended
- Newsroom: who actually read it — the public newsroom now also tracks dwell time and downloads, and the dashboard surfaces engaged visitors in three tiers (opened / browsed / engaged) plus a download-by-target breakdown. Identifier is the same anonymous hash already disclosed (web).
- Press CRM coverage tab is live — the journalist contact page now shows real coverage from monitoring: stat cards for our-articles vs competitor-articles counts, an Articles tab with the matched list and sentiment chips, and an Article Analysis tab with recent-3, topic frequency, our-mention count, and estimated deadline weekday + a deep link to outlet-level tone (web).
- Fixed — the dashboard AI-credit widget no longer shows a hardcoded 12/100, and the Press CRM contact stat cards no longer hardcode 0 (web).
v0.030.001May 13, 2026
- Crisis War Room — when AI sentiment turns sharply negative across enough of your coverage, Marcomm AI now opens an incident, alerts the people you chose (overriding their quiet hours for that incident), and drafts a Q&A deck from your past Q&A decks with a confidence score on each answer
v0.029.039May 13, 2026
- Landing and pricing pages rewritten around outcomes, not features — the home page now leads with the 3 a.m. fear and the Q&A draft waiting before you wake up, then walks through press releases in your company's voice, the journalist who actually opened your newsroom, automatic crisis detection, monitoring that comes to you, five-minute executive reports, Press CRM, and the price (about 1/40th of Cision's, roughly $12,677/yr vs $29/mo). A new "Sound familiar?" pain section replaces the old unsourced "10x / 85% / 99.9%" stat tiles, a price teaser sits just above the FAQ linking to /pricing, the pricing page now states that domestic monitoring is included in Pro and that international is an optional +$19/mo add-on and that the AI crisis Q&A draft stays internal by design for legal safety, and Enterprise reads "Custom, talk to us" with no invented price. All copy was rewritten natively in all 14 supported languages, and unused testimonial and stat strings were removed (web).
v0.029.038May 13, 2026
- Press CRM contact pages now fully localized — the "Add contact" and contact-detail screens still had Korean baked into form labels, section headings, placeholders, and the media-type / country / language dropdowns, so non-Korean users saw a mix of their own language and Korean. Every label, heading, placeholder, dropdown option, and the four record dialogs (communication, work history, education, notes) on those two pages now go through translation and render natively in all 14 supported languages. No change to behavior
v0.029.037May 13, 2026
- Japanese, and 12 other languages, now fully native across the workspace — the recent native-translation pass treated Japanese (and English / Korean) as already complete, but 148 strings in Japanese were still showing English, mostly across the Press Release editor, workspace Settings, and Profile pages. Those plus another 266 residual strings across German, Spanish, French, Portuguese, Vietnamese, Thai, Indonesian, Malay, Russian, Korean, Simplified Chinese, and Traditional Chinese (414 total) are now translated by hand into each native language. Brand names, plan names, technical acronyms, and example placeholders intentionally stay in English (web).
v0.029.036May 13, 2026
- Brand guide tint swatch fixed in dark mode — the lavender tint surface in the brand guide kept its light background in dark mode while the wordmark on it flipped to white, making the swatch unreadable. The tint tile now has a dark companion so the wordmark stays legible in both themes (web).
- App launcher polish — the launcher panel now clamps its width on very narrow screens (no edge overflow), the grid icon shows a focus ring on keyboard navigation, and the menu supports arrow / Home / End keys to move between Account, Console, and Conma (web).
- Stale comments cleaned up — internal source comments still describing the theme toggle as "Light / System / Dark" were corrected to "Light / Dark" to match the actual two-state behavior (web).
v0.029.035May 6, 2026
- Terms of Service and Privacy Policy now confirmed available in all 14 languages — both legal documents are kept in every supported language for your convenience, with the standard governing-language clause: the Korean-language version is the authoritative text, and in the event of any conflict, discrepancy, or inconsistency between the Korean version and any other language version, the Korean version prevails. The Korean wording of that clause was tightened to state plainly that the other-language versions are reference translations provided for convenience (web).
v0.029.034May 6, 2026
- AI credit price now shows in seven more languages — the "per 1,000 credits" price line lost its {price} variable during the recent native-translation pass in Korean, Japanese, Spanish, Portuguese, Russian, Simplified Chinese, and Traditional Chinese, so it rendered with an empty price. The variable is restored in each of those locales (web).
v0.029.033May 6, 2026
- Account sub-site chrome unified with workspace and Console — account.marcomm.work now renders the same shell as app.marcomm.work and console.marcomm.work: 256 px collapsible sidebar (toggle in the brand row, hover tooltips when collapsed), 12 px header with theme · locale · avatar dropdown, F9FAFB main background, page transition crossfade. Previously the account sub-site shipped its own pattern (full-width header above the sidebar, fixed 260 px non-collapsible sidebar, max-w-4xl content cap) which read as a different product (web).
- Account avatar dropdown moved into the header — the brand mark on the left of the header is gone (it now lives inside the sidebar like the workspace), and the avatar with sign-out and Marcomm-home links lives on the right of the header next to theme and locale, aligning with the chrome on the other two sub-sites (web).
- Account sidebar collapsible with hover tooltips — the chevron in the brand row collapses the sidebar to a 56 px icon rail; hovering over an item shows a dark tooltip with the item label, identical to the workspace pattern (web).
v0.029.032May 5, 2026
- App launcher in the workspace header — a new grid icon between the notifications bell and the avatar opens a three-card menu with quick links to Account, Console, and Conma. Each card carries a colored tile so the three surfaces read as distinct at a glance, and the menu closes on outside click or Escape. Account and Console open in the same tab; Conma opens in a new tab since it is a separate product (web).
- Header right-side controls reordered — Search, Theme, Language, Notifications, Apps, Profile (web).
- App launcher labels native in all 14 locales — the menu items render in the active interface language with no English fallback (web).
v0.029.031May 5, 2026
- Theme toggle simplified to Light / Dark — the system-follow option was removed in favor of an explicit two-state toggle. The compact icon button now flips directly between the sun and moon, and the segmented control shows two pills instead of three. Visitors who previously had system selected continue to see whichever theme matches their OS the next time they land, then snap to whichever explicit choice they pick (web).
v0.029.030May 5, 2026
- Sidebar logo readable in dark mode — the Marcomm AI wordmark in the workspace sidebar previously rendered with dark text on the dark sidebar background and was nearly invisible. The wordmark now auto-adapts to the active theme so it stays legible everywhere it appears (web).
v0.029.029May 5, 2026
- Cookie disclosure now native in every locale — the cookies notice (legal/cookies and the standalone Cookies page) is fully translated in all 14 locales. Vendor names, legal entity names, and standardized cross-border data-transfer mechanisms (SCCs + DPF) intentionally stay in English across every locale because that is the recognized form in privacy disclosures everywhere (web).
- Terms of Service and Privacy Policy stay in English across all 14 locales — these two documents are explicitly English-only by policy. Lawyer-reviewed native translations would be required to localize them and that work is out of scope (web).
v0.029.028May 5, 2026
- Marcomm now speaks Traditional Chinese natively — 544 strings that previously fell back to English when the user picked Traditional Chinese are now translated by hand into native Taiwan Traditional Chinese (distinct from Mainland Simplified) with the formal register, glossary-aligned product terms, and Taiwan-specific lexicon. Legal documents (Terms / Privacy) remain in English pending a Taiwan lawyer review (web).
- 11-locale full native rollout complete — every UI string in every supported locale (de · es · fr · pt · vi · th · id · ms · ru · zh · zh-TW) is now hand-translated into the local language. The previous EN fallback policy is retired. Legal documents (Terms / Privacy / Cookies / Brand Guide) remain in English across the eleven locales pending native lawyer review per jurisdiction (web).
v0.029.027May 5, 2026
- Marcomm now speaks Simplified Chinese natively — 544 strings that previously fell back to English when the user picked Simplified Chinese are now translated by hand into native Mainland Simplified Chinese with the formal register, glossary-aligned product terms, and proper full-width punctuation. Legal documents (Terms / Privacy) remain in English pending a Mainland Chinese lawyer review (web).
v0.029.026May 5, 2026
- Marcomm now speaks Russian natively — 687 strings that previously fell back to English when the user picked Russian are now translated by hand into native Russian with the formal register, glossary-aligned product terms, and proper Russian typography. Legal documents (Terms / Privacy) remain in English pending a Russian lawyer review (web).
v0.029.025May 5, 2026
- Marcomm now speaks Malay natively — 899 strings that previously fell back to English when the user picked Bahasa Melayu are now translated by hand into native Malay (DBP standard) with the formal anda register, glossary-aligned terms (ruang kerja, pemilik, siaran akhbar, pengesahan dua faktor, tempoh tangguh)
v0.029.024May 5, 2026
- Marcomm now speaks Indonesian natively — 952 strings that previously fell back to English when the user picked Bahasa Indonesia are now translated by hand into native Indonesian with the formal Anda register, glossary-aligned terms (ruang kerja, pemilik, siaran pers, autentikasi dua faktor, masa tenggang). Legal documents (Terms / Privacy) remain in English pending an Indonesian lawyer review (web).
v0.029.023May 5, 2026
- Marcomm now speaks Thai natively — 881 strings that previously fell back to English when the user picked Thai are now translated by hand into native Thai with the formal SaaS register (no politeness-particle endings), glossary-aligned product terms, and proper Thai typography. Legal documents (Terms / Privacy) remain in English pending a Thai lawyer review (web).
v0.029.022May 5, 2026
- Marcomm now speaks Vietnamese natively — 892 strings that previously fell back to English when the user picked Vietnamese are now translated by hand into native Vietnamese with the formal business register, glossary-aligned product terms, and proper Vietnamese diacritics. Legal documents (Terms / Privacy) remain in English pending a Vietnamese lawyer review (web).
v0.029.021May 5, 2026
- Marcomm now speaks Portuguese natively — 755 strings that previously fell back to English when the user picked Português are now translated by hand into native, neutral Portuguese (Brazil + Portugal compatible) with the formal você register, glossary-aligned terms (espaço de trabalho, proprietário, comunicado de imprensa, autenticação de dois fatores, período de carência), and proper Portuguese typography. Legal documents (Terms / Privacy) remain in English pending a Portuguese-speaking lawyer review (web).
v0.029.020May 5, 2026
- Marcomm now speaks French natively — 971 strings that previously fell back to English when the user picked Français are now translated by hand into native French with the formal vous register, glossary-aligned terms (espace de travail, propriétaire, communiqué de presse, authentification à deux facteurs, délai de grâce, RGPD), and proper French typography (« », non-breaking spaces, en-dash). Legal documents (Terms / Privacy) remain in English pending a French lawyer review (web).
v0.029.019May 5, 2026
- Marcomm now speaks Spanish natively — 747 strings that previously fell back to English when the user picked Español are now translated by hand into native, neutral Spanish (Latin America + Spain compatible) with the formal usted register, glossary-aligned terms (espacio de trabajo, propietario, nota de prensa, autenticación de dos factores, período de gracia), and proper Spanish typography (¿…?, ¡…!, «»). Legal documents (Terms / Privacy) remain in English pending a Spanish lawyer review (web).
v0.029.018May 5, 2026
- Marcomm now speaks German natively — every workspace, account, console, and billing string that previously fell back to English when the user picked Deutsch is now translated by hand into native German with the formal Sie register, glossary-aligned terms (Arbeitsbereich, Inhaber, Pressemitteilung, Zwei-Faktor-Authentifizierung, Karenzfrist, Sperrfrist), and proper German typography. 966 strings translated. Legal documents (Terms / Privacy) remain in English pending a German lawyer review (web).
v0.029.017May 5, 2026
- Two-factor setup wizard with authenticator-app picker — the account.marcomm.work/security setup screen is now a numbered three-step flow (install an app · scan the QR · enter the code). Step one ships a picker card with Google Authenticator, Microsoft Authenticator, 1Password, and Authy, each with one-tap iOS and Android store links so first-time enrollers don't have to guess what to install (web).
- Manual key entry made obvious — the TOTP secret that fallback-pasters need is now framed with *Can't scan? Enter this key in your authenticator app instead:* and a one-click Copy button next to it, instead of the bare mono-code box that did not explain itself (web).
- Set-up-your-own-2FA shortcut on the workspace policy page — Console → Workspace security now shows a small badge next to the two-factor section header reading either *Your 2FA is set up* (green) or *Set up your own 2FA* (amber), linking to the account enrollment page in a new tab. Owners can confirm they're enrolled before tightening the policy and accidentally locking themselves out (web).
v0.029.016May 5, 2026
- Workspace two-factor labels now spell out who is in scope — the *Admins only* and *All members* tiers on Console → Workspace security read as *Admins (email sign-in)* and *All members (email sign-in)* so workspace owners can see at a glance that the policy applies only to Email + Password members. Google and Microsoft sign-in users defer to their own provider's 2-Step. The decision was already this way in code, but the labels could be misread (web).
- Two-factor description rewrites the OAuth deferral up front — the page subhead now leads with *Require Email + Password members to enroll a second factor. Google and Microsoft sign-in users defer to their own provider's 2FA.*, instead of burying the OAuth deferral in a footer hint. Available in English, Korean, and Japanese natively (web).
v0.029.015May 5, 2026
- Account deletion grace period bumped to thirty days — the cancellation window between *Delete my account* and the actual data wipe is now thirty days (was fourteen). Matches the industry-standard window used by Microsoft 365, Google Workspace, and Apple ID, and gives an accidental click in the middle of a meeting much more recovery room (web).
- Pending-deletion banner on the privacy page — once a deletion is scheduled, the Danger zone section flips to a clear *Account scheduled for deletion* card showing the absolute date and the days remaining, instead of re-offering the Delete button as if nothing had happened. Resolves a recurring support pattern where users clicked Delete twice (web).
- One-click cancel from the privacy page — the new banner exposes a *Cancel deletion* button that reverses a scheduled deletion in one click. No second-step confirmation dialog because cancellation is the safe direction. The previous cancellation flow was not exposed in the UI (web).
v0.029.014May 5, 2026
- Workspace policy changes propagate within five minutes — every workspace security setting (allowed sign-in methods, allowed email domains, two-factor authentication tier) now reaches every active member session within roughly five minutes of being saved, instead of waiting up to thirty days for the JWT session to naturally expire. The session token now refreshes silently in the background and re-runs the policy check on each refresh tick (web).
- Mid-session enforcement bounces — if a workspace owner narrows methods, adds a domain restriction, or flips two-factor on while a member is still signed in, the member's next page navigation after the refresh tick lands on the right destination instead of the workspace dashboard. Method or domain blocks land back on /sign-in with the existing banner explaining what changed; two-factor blocks land on the account security page so the member can enroll (web).
- Mid-session invalidations recorded in the audit log — when a policy change kicks an active session out, the event is logged as a session-invalidation entry alongside the existing sign-in-time block rows so workspace owners can see the full impact of a policy change in one place (web).
- Session lifetime tightened to twenty-four hours — the absolute session lifetime is now twenty-four hours of inactivity (was thirty days). A typical workday no longer requires re-authentication, but a stolen device bricks itself overnight (web).
v0.029.013May 5, 2026
- Workspace two-factor authentication policy — workspace owners can now require members to enroll a second factor from Console → Workspace security. Three tiers: Optional (default), Admins only (owner and admin members must enroll), and All members (every member must enroll). The grace period (1–90 days, default 7) is configurable so newly-enabled policies don't strand existing members on the first sign-in after the toggle (web).
- Workspace 2FA enforcement at sign-in — once the grace period elapses, Email + Password members who haven't enrolled are redirected to account.marcomm.work/security with the workspace name attached, instead of being dropped into the workspace dashboard with no second factor in place (web).
- OAuth members defer to their provider — members signing in with Google or Microsoft are unaffected by the workspace 2FA policy. Google 2-Step and Microsoft Authenticator already manage the second factor for those flows, so Marcomm doesn't double-gate them (web).
- 2FA policy changes recorded in the audit log — successful tier or grace-period changes and post-grace blocks are each logged as their own entry types, separate from the existing methods-policy and domain-policy audit lines so the security tab can tell the three policies apart at a glance (web).
v0.029.012May 5, 2026
- Console sign-in returns to the exact page — accessing any Console page while signed out now bounces through sign-in and lands on the same path you originally requested, not just the workspace overview (web).
v0.029.011May 5, 2026
- Workspace email-domain allow-list — workspace owners can now restrict membership to specific company email domains from Console → Workspace security. The Allowed email domains panel accepts a normalized list (lowercase, trimmed, deduped) and members trying to sign in with an email outside the allow-list are bounced back to /sign-in with a clear "this workspace only accepts @acme.com" banner. Empty list keeps the workspace open to every domain (web).
- Owner domain-lockout guard — the only owner of a workspace cannot save a non-empty allow-list that excludes their own email's domain. The save is blocked with a message asking them to add their domain back or transfer ownership (web).
- Domain policy changes recorded in the audit log — successful domain updates and blocked sign-in attempts are each logged as their own entry types, separate from the existing methods-policy audit lines so the security tab can tell the two policies apart at a glance (web).
v0.029.010May 5, 2026
- Console chrome unified with the workspace App — the Console sub-site now renders the same sidebar shell, header bar, page transition, and color tokens used inside a workspace, so the read across the two surfaces is identical. 256 px collapsible sidebar, 12 px header, F9FAFB main, Marcomm Purple active-state, full dark mode (web).
- All Console navigation moved into the left sidebar — the horizontal tab pills that used to sit on top of every per-workspace page are gone. Overview · People · Billing · Audit · Storage · Security all live in the sidebar in workspace context, matching the cross-workspace hub layout. Single nav surface, no more parallel-menu cognitive load (web).
- Console hub Overview is a real dashboard — workspace cards remain, now sitting under a welcome header, four summary stat tiles (workspaces · total members · storage used · 7-day audit events), a recent activity feed showing the last five events with a deep-link to the full audit log, and an Add workspace shortcut (web).
- Console workspace Overview rebuilt — per-workspace landing page now shows four stat tiles (members · press releases · storage with progress bar · plan), the latest five audit events, and three Quick Action cards (Manage members / billing / security) that each animate on hover (web).
- Console workspace switcher — sidebar now exposes a workspace selector dropdown when in a workspace context, so jumping between workspaces is one click instead of a hub round-trip (web).
- Sidebar collapse on Console — the same chevron toggle the workspace App uses; Console sidebar collapses to a 64 px icon rail with hover tooltips, expands back to 256 px on click (web).
v0.029.009May 5, 2026
- Console hub menu — Audit and Storage pages added so every sidebar entry resolves to a real surface; the redundant Overview row that pointed at the same page the Console icon already opens has been removed (web).
- Audit hub — recent activity from every workspace you administer in one feed, each row deep-links to the per-workspace audit log for filtering and pagination (web).
- Storage hub — total used and quota across every workspace, plus per-workspace breakdown with a colored progress bar that turns amber over 70 percent and rose over 90 percent (web).
- Workspace billing actions reachable — Plan, Payment methods, Invoices, Coupons, and the Manage storage link inside a workspace Console all worked through a hard-coded /console prefix that doubled into a 404. The same fix swept across Invoices, Payment, Payment methods, Payment settings, and Storage so every link from a workspace Console resolves correctly (web).
- Stale Settings stub redirect repaired — the legacy /<workspace>/settings entry under Console used to bounce to /console/<workspace> and 404; it now lands on the workspace overview as intended (web).
- Console icon as hub home — clicking the Console label and icon in the sidebar header always returns to the hub root, replacing the dedicated Overview menu row (web).
- Console hub People filter repaired — switching the workspace filter on the cross-workspace People page used to push the browser to /admin/people, a path that no longer exists after the host rename and 404'd. Filter changes now stay on /people with the workspace as a query parameter (web).
v0.029.008May 5, 2026
- Console sidebar links no longer 404 — every entry in the Console sidebar (Overview, People, Billing, Audit, Storage, Security, the workspace selector, and the back-to-hub footer) used to send the browser to console.marcomm.work/console/<page>, where the redundant /console segment double-rewrote into a 404 Page not found. Sidebar links now use the canonical console.marcomm.work/<page> shape that matches every other surface on the host (web).
v0.029.007May 5, 2026
- Console sign-in callback URLs corrected — accessing a Console page while signed out now reliably returns the user to the same Console page after sign-in (web).
- Console root no longer locks itself behind a forced redirect to /audit — clicking the sidebar Audit link used to silently mark "audit" as your last-visited workspace, so any later visit to console.marcomm.work/ would 308 to /audit instead of opening the workspace hub. Hub-level paths (audit, people, billing, security, settings) are now excluded from the auto-jump cookie, and any cookie poisoned by an earlier build is cleared on the next hub visit (web).
v0.029.006May 5, 2026
- Console URLs cleaned up — buttons and menu links no longer carry a redundant /console path segment, so URLs are now console.marcomm.work/<workspace>/<page> instead of console.marcomm.work/console/<workspace>/<page> (web).
- Branded loader regains motion — three dots beneath the logo now bounce in sequence and the logo gently transitions from gray to brand purple while a route loads, so users see clear "still working" feedback (web).
- Workspace Settings hub now surfaces an Operations section — Security, Members, and Billing reappear as entry cards alongside the six Configuration cards, with a clear "Managed in Console" label and a one-line description on each card. Cards open the matching page on console.marcomm.work in a single hop so the day-to-day administration flow no longer requires guessing which sub-domain to visit (web).
- Settings → Operations cards visually distinct from Configuration — slate background, an upward-arrow corner glyph, and an "Open in Console →" footer make the cross-host destination obvious before the click. Mirrors the Google Workspace Admin Console entry pattern (web).
v0.029.005May 5, 2026
- Workspace owners can now restrict which sign-in methods their workspace accepts — a new Allowed sign-in methods panel on Console → Workspace security toggles Email + Password, Google, and Microsoft on or off per workspace. Members trying to sign in with a disallowed method are bounced back to the sign-in page with clear guidance on which method to use (web).
- Owner-lockout guard on the policy editor — the only owner of a workspace cannot remove every method that is currently wired up on their own account. The save is blocked with a message asking them to connect another method first or transfer ownership (web).
- Workspace policy changes are recorded in the audit log — both successful policy updates and blocked sign-in attempts land in the workspace security log so owners can see who tried to enter with what method (web).
v0.029.004May 5, 2026
- Security hardening on cross-workspace billing connections — connecting a workspace to a billing account now requires owner-level authorization on both sides (web).
- Security hardening on the account-existence check — the response no longer reveals which sign-in method an existing account uses; only the half-finished sign-up signal is preserved so users get routed back to email verification when needed (web).
- Security hardening on the workspace security policy view — the action item for members lacking two-factor authentication now reports only a count instead of individual email addresses (web).
- Security hardening on the sign-out redirect — the post-sign-out destination is now resolved against a server-trusted origin instead of the incoming request host, preventing redirect to an attacker-controlled host on poisoned proxy paths (web).
v0.029.003May 4, 2026
- Console subdomain replaces the previous admin subdomain for clearer separation between business operations and workspace configuration (web).
- Reorganized into Operations vs Configuration — Console hosts business operations (people, billing, audit, security); Workspace Settings hosts workspace configuration (identity, appearance, infrastructure, AI defaults) (web).
- Console workspace asset detail with six tabs: Overview, People, Billing, Audit, Storage, Security (web).
- Members, Billing, Invoices, Audit Log, Security, and Storage moved from Workspace Settings to Console; old links forward automatically (web).
- Workspace Settings hub redesigned as a six-card configuration grid: Identity, Appearance, Newsroom Infrastructure, Email Infrastructure, AI Defaults, Notifications (web).
- Newsroom appearance (template, layout, section order) extracted into its own Settings card (web).
- Workspace sidebar shows a single Console entry-point link instead of cross-host settings sub-items (web).
- Branded loader background fully opaque white to eliminate visual bleed-through (web).
- Newsroom Infrastructure split into five sub-pages: Basics, Domain, Images, Template, SEO (web).
- Workspace Settings billing internal links repaired (web).
v0.029.002May 4, 2026
- Dark mode coverage extended across workspace settings, public newsroom, customer-branded layouts, onboarding, credits, invoices, dashboard cards, and various modals (web).
- Dark mode applied consistently across all newsroom layout variants and section renderers (web).
- Color mapping standardized — surfaces, text, accents, badges, and brand colors all shift predictably between light and dark themes (web).
v0.029.001May 4, 2026
- Workspace global search v1 — type in the header search bar and press Enter to open a dedicated search page (web).
- Search results split into five categories — Press Releases, Content, Members, Media Contacts, Monitoring
- All-results view shows top three previews per category with a More link; individual category tabs paginate twenty results per page (web).
- Search highlights matching terms in result snippets (web).
- Loading skeletons and empty states handle short queries and zero-result cases gracefully (web).
- Search interface fully localized across all fourteen supported languages with native-quality translations (web).
v0.028.008May 4, 2026
- Branded loader stays hidden for the first half-second of any route transition — navigations that resolve quickly never flash a loader (web).
- Routes that take longer keep the loader visible long enough to register before disappearing (web).
- Loader background snaps to fully opaque the moment it appears and disappears in a single frame on exit (web).
v0.028.007May 4, 2026
- Theme toggle added to the workspace header — light, system, and dark with a single icon (web).
- Header right-side controls reordered: Search, Theme, Language, Notifications, Profile (web).
v0.028.006May 4, 2026
- Dark mode applied across workspace pages — Press CRM, Content Hub, Newsroom builder, press-release editing, monitoring, notifications, todos, profile, members, email dispatch, market intelligence (web).
- Dark mode applied across the Account sub-site — Overview, Profile, Preferences, Security, Sessions, Notifications, Privacy, and Workspaces (web).
- Dark mode applied across editors and modals — rich-text editor, image picker, color picker, link prompt, comments, and shared UI components (web).
- Dark mode applied across public marketing sub-pages — feature pages, guide content, brand guide, contact, resources, blog editor (web).
- Color mapping consistent across the application: surfaces, text, brand accents, color chips, and destructive actions all map predictably between light and dark themes (web).
v0.028.005May 4, 2026
- Dark mode applied to the press-release list page — list, calendar, and kanban views all theme correctly, including status badges and avatars (web).
- Filter inputs, view toggle, pagination, and stat cards are dark-mode aware (web).
v0.028.004May 4, 2026
- Dark mode applied to the workspace dashboard — greeting, stat cards, recent press releases, activity timeline, AI credits panel, todo list, and quick actions (web).
- Status badges (draft, in review, scheduled, published, rejected) preserve color meaning across themes (web).
v0.028.003May 4, 2026
- Dark mode applied to the workspace sidebar — every navigation item, collapse toggle, brand row, dividers, badges, and the collapsed-mode flyout (web).
- Dark mode applied to the workspace header — workspace switcher, search input, notifications panel, and avatar menu (web).
- Sign-out menu item retains its destructive color signal in dark mode (web).
v0.028.002May 4, 2026
- Newsroom hero carousel accessibility labels now localize per newsroom instead of falling back to a default language (web).
- Workspace settings translations cleaned up — stale entries that no longer mapped to existing pages were removed (web).
v0.028.001May 4, 2026
- Public newsroom accessibility labels fully localized across all fourteen supported languages — pagination, share buttons, lightbox controls, search, language selection, and carousel controls all read in the newsroom configured locale to assistive tech (web).
- Internal blog editor now ships with full translations across all fourteen languages instead of falling back to English (web).
v0.027.002May 4, 2026
- Explicit theme toggle now ships across the marketing surface — light, system, dark options (web).
- Theme preference persists across sessions and follows the operating system color scheme automatically when set to system (web).
- No flash of incorrect theme on first paint — the chosen theme applies before the page renders (web).
v0.027.001May 2, 2026
- Marcomm now organized around a Business Account model — one account owns multiple workspace assets (web).
- Each workspace asset card shows the workspace name, canonical URL, an Open workspace shortcut, and a Manage link into the workspace-scoped admin overview (web).
- Workspace-scoped admin sidebar simplified to focus on the workspace overview and a quick way back into the workspace itself (web).
- Translations updated across all fourteen supported languages for the new business account concepts (web).
v0.026.001May 2, 2026
- Workspace URLs unified — every workspace lives at the app host with the workspace identifier in the path (web).
- Sub-domains are reserved for scope labels (marketing, app, admin, account) (web).
- Public newsroom continues to live at the workspace canonical URL with the same SEO endpoints (RSS, sitemap, robots) (web).
- Onboarding workspace-URL preview updated to match the new canonical URL pattern (web).
- Profile redirect now goes directly to the account host (web).
- Sign-in flows continue to work uniformly across all four hosts (web).
v0.025.014May 1, 2026
- Sign in with Microsoft — Microsoft Entra ID added as a third sign-in provider next to Google and Email + Password. Personal, work, school, and guest Microsoft accounts can all use the new Continue with Microsoft option on the sign-in and sign-up pages (web).
- Account Settings Sign-in methods now manages all three methods side-by-side. Each row shows whether the method is active, when it was connected or last changed, and a Connect or Disconnect action (web).
- Adding a sign-in method to an existing account is an explicit click that goes through the provider authentication flow and verifies the email matches (web).
- The final remaining sign-in method is protected from accidental removal — the Disconnect button is disabled when only one method remains (web).
- Sign-in method changes are recorded in the audit log so the security tab shows a complete history (web).
- Sign-up shows a uniform "Already have an account? Sign in" message; provider-specific guidance only appears on the sign-in page itself (web).
- Locales other than English now fall back to readable English when a translation is missing instead of showing raw key names (web).
v0.025.013May 1, 2026
- Workspace admin tree consolidated — every admin surface (members, billing, audit log, security, storage, identity, AI defaults, email infrastructure, newsroom infrastructure) now lives in a single canonical location on the admin sub-site (web).
- Admin overview restructured into three blocks — a stats row, a Storage card, and an All sections grid (web).
- Workspace sidebar Admin menu opens its submenu without forcing a cross-host hop until a specific sub-item is selected (web).
- Admin sub-page translations updated across all fourteen supported languages (web).
v0.025.012May 1, 2026
- Account sub-site gets an Apple-style Overview hub at the root — hero with the user name, email, security score, member-since date, and workspace count, plus quick-link cards into Profile, Sign-in & Security, Sessions, and Workspaces (web).
- New User ID footer card on the Profile page — small, monospace, copyable, with a one-line explanation that support uses the ID to look up accounts (web).
- Two-factor authentication management folded into a unified Sign-in & Security page next to other sign-in methods (web).
- Workspace avatar dropdown adds an Account entry that crosses to the account host (web).
- Account sidebar grew an Overview entry above the existing four groups (web).
v0.025.011May 1, 2026
- Branded loader minimum-display timing now applies on every route, not just full-screen ones (web).
- Page-content fade-in cushion shortened so the transition between loader and page no longer reads as motion (web).
- Account sub-site sidebar reorganized into four groups — Personal, Security, Privacy & data, Workspaces (web).
- New Preferences sub-page on the account host — language selector now lives here (web).
- Translation parity checks now run automatically before every commit so all fourteen supported languages stay in sync (web).
v0.025.010May 1, 2026
- Settings menu in the workspace sidebar no longer auto-navigates when only the parent label is clicked — the sidebar slides into the submenu so users can pick a specific sub-item (web).
- Stale legacy settings links cleaned up across the app to prevent silent prefetch errors (web).
- Browser permissions policy header trimmed of unused declarations to reduce harmless console noise during sign-in (web).
v0.025.009May 1, 2026
- Sign-out reliably ends the session at every entry point — the marketing home no longer renders with stale logged-in chrome after sign-out (web).
- Workspace-side sign-out hands off correctly to the marketing host before redirecting (web).
- Marketing-home Dashboard link no longer auto-prefetches authenticated routes (web).
v0.025.008May 1, 2026
- Sign-out hardened across all entry points — the dashboard dropdown and the marketing-home dropdown now share the same sign-out flow (web).
- All sign-out buttons rewired — workspace dashboard header, public marketing header, and mobile menu (web).
v0.025.007May 1, 2026
- Sign-out from the workspace dashboard now lands on the marketing home directly (web).
v0.025.006May 1, 2026
- Settings sidebar items navigate directly to the admin sub-site without an intermediate flash (web).
v0.025.005May 1, 2026
- Workspace page entrance animation simplified — transitions are now opacity-only, removing the small downward shift that read as motion in some empty-state cards (web).
v0.025.004May 1, 2026
- Branded loader now stays on screen for at least two seconds once it begins fading in, so a fast-resolving route does not flash the loader away before users notice it (web).
v0.025.003April 30, 2026
- Sign-up mismatch banner — sign-up now surfaces a clear "this account uses Google sign-in" or "this account uses email sign-in" banner when an existing account tries the wrong path, instead of returning a generic "email already registered" message (web).
- Concurrent sign-up handled — when two registrations for the same email arrive simultaneously, the loser of the race now sees the same friendly mismatch or duplicate-email guidance instead of a server error (web).
- Resume unverified sign-up — if a previous sign-up attempt never confirmed its email, retrying now routes the visitor straight to the email verification screen with a fresh code, instead of dead-ending on "already registered" (web).
- Forgot-password Google guidance — the Google-account branch of forgot-password now adds a follow-up sentence pointing users to their Google Workspace administrator if they have lost access to their Google account, translated natively across all 14 locales (web).
v0.025.002April 30, 2026
- Public marketing dark mode — every public surface on the marketing site (landing, pricing, features, blog list, legal pages, FAQ accordion) now adapts to dark mode for visitors whose system prefers a dark interface. Brand-purple hero bookends are kept intentionally so the brand anchor stays consistent (web).
- Pricing comparison dark variant — the pricing comparison table maps every header, alternating row, popular column highlight, and check or cross icon to a dark-friendly palette so the table stays readable end-to-end (web).
- Blog category chips dark variant — all five blog category chips (Think Piece, Insight, Best Practice, Guide, News) now have dedicated dark colors. Card surfaces, category filter tabs, author lines, and loading skeletons all match (web).
- Legal documents dark variant — every section of the terms, privacy, and cookie policy pages, including table of contents navigation, body paragraphs, contact callout boxes, the cookie feature table, third-party processor cards, regional notice grids, and required-cookie badges, now renders cleanly in dark mode (web).
v0.025.001April 30, 2026
- Release-notes timeline localized — the year selector, month filter pills, the "All" filter, and the empty-state message on the public release-notes page now read in the visitor's chosen language across all 14 supported locales, with locale-appropriate three-letter month abbreviations (web).
- Internal blog editor localized — the internal blog authoring page now switches form labels, placeholders, category chips, action buttons, toast confirmations, and the access-denied state with the visitor's chosen language. Korean and English are hand-translated; the remaining 12 locales fall back to English at runtime since this is an internal authoring tool (web).
- Orphan translation sweep — five top-level translation namespaces that had no live consumers in the source code were removed from all 14 locale files, dropping a large number of dead translations and bringing the translation surface back to clean hygiene (web).
v0.024.022April 30, 2026
- Auth pages dark variant — sign-in, sign-up, forgot-password, reset-password, and verify-email pages now adapt to dark mode across every input, the Google sign-in button, dividers, password-rule chips, inline notices, and the verification code grid. The brand panel keeps its purple anchor (web).
- Two-step verification dark variant — the two-step verification screen, including the code input, backup-code input, mode toggle, and inline error messaging, now follows the same dark palette as the rest of the auth surface (web).
- Form validation states in dark — input error and success borders now have dedicated dark colors so success and error signals stay legible in dark mode (web).
v0.024.021April 30, 2026
- Translation cleanup — two orphaned translation namespaces left over from earlier legal-document refactors were removed from all 14 locale files, dropping a large block of dead translation entries and removing a future-drift trap where translators could fix an outdated string and assume it shipped somewhere (web).
- Translation audit extended — the post-deployment translation audit now walks every translation lookup across the refactored pages, resolves dynamic template lookups against the actual content, and flags suspect-untranslated strings. The remaining long-identical strings across all locales are legitimate brand, company, and legal-acronym literals (web).
v0.024.020April 30, 2026
- Clear sign-in mismatch banner — when an account that signed up with Google tries to sign in with a password, or vice versa, sign-in now shows a clear "this account uses Google sign-in" or "this account uses email sign-in" banner pointing the visitor to the correct method, instead of looping on a wrong-password error (web).
- Forgot-password Google-account guidance — entering a Google-account email on forgot-password now answers with a clear message that there is no password to reset on Marcomm and that the password is managed in the visitor's Google account, instead of returning a silent generic success (web).
- Google button rejected for email accounts — clicking the Google sign-in button with an email-account address now bounces the visitor back to sign-in with a clear "this account uses email sign-in" banner, instead of silently linking a new Google identity to the existing account (web).
- Mismatch copy translated everywhere — every new sign-in mismatch and forgot-password guidance string is translated natively across all 14 supported locales (web).
v0.024.019April 30, 2026
- Members table sortable — every column header in the admin members table (Name, Email, Role, Last sign-in, Storage used) is now a sortable button. Role sort uses a stable hierarchy so the order is meaningful in every language, and storage sort orders by actual byte size rather than lexicographically. Existing search and filters keep working alongside sort (web).
- Audit log filter bar — the admin audit log now has a filter bar above the table with free-text search across action, target, and actor at the same time, plus a grouped action dropdown populated from the workspace's actual history. Filters live in the URL so they survive pagination, and a one-click reset clears every filter (web).
- Build cache integrity check — the production build pipeline now verifies that key installed dependencies actually match the lockfile before running, and recovers automatically when a stale cache is detected, so deploys cannot ship with mismatched dependency versions (web).
v0.024.018April 30, 2026
- Privacy actions polished — Request data export and Delete account on the Privacy page are now proper in-page actions. Request export shows a clear confirmation toast, and Delete account opens a type-the-word-DELETE confirmation gate before submitting, instead of navigating the browser to a raw response (web).
- Account pages audit — every other account page (Profile, Email and phone, Sessions, Notifications, Organizations, MFA, Security) was reviewed for the same class of issue and confirmed clean (web).
- Privacy actions translated — all the new Privacy action labels and confirmation copy are translated natively across all 14 supported locales (web).
v0.024.017April 30, 2026
- Workspace settings hub — the in-workspace settings page is now a clean hub that lists each administration section (Workspace identity, Members, Email infra, Newsroom infra, AI defaults, Storage, Subscription and billing) with a direct link to the matching admin page. Older settings tab URLs still resolve so bookmarks keep working (web).
- Admin partial-update audit — every administration form was reviewed end-to-end and confirmed safe against the partial-update wipe pattern that an earlier release fixed in the newsroom form. No further occurrences exist (web).
- Hub copy translated — every label on the new workspace settings hub ships at native quality across all 14 supported locales (web).
v0.024.016April 29, 2026
- Admin audit log and security as native pages — the admin audit log and security pages are now first-class views inside the admin sub-site, with a consistent header, admin breadcrumb, plural-aware event count, and paginated audit log navigation, instead of being re-exports of the workspace pages (web).
- Audit log and security translated — every label on the admin audit log and security pages ships at native quality across all 14 supported locales, with proper plural agreement for the event count (web).
v0.024.015April 29, 2026
- Newsroom images editable inside admin — favicon, header logo image, and Open Graph preview image now have native upload slots in the admin newsroom infrastructure section. Each slot shows a preview, an upload action, and a remove action with appropriate per-slot size and format limits. The admin sub-site is now feature-complete for newsroom configuration (web).
- Newsroom partial-update fix — saving any single newsroom infrastructure card (Basics, SEO, Custom domain, Template, Images) no longer erases the fields managed by the other cards. Each form now updates only the fields it actually changed, leaving the rest untouched (web).
- Newsroom images translated — every label on the new newsroom images card ships at native quality across all 14 supported locales (web).
v0.024.014April 29, 2026
- Translation parity gate — every build now verifies that the 13 non-English locale files match the English shape leaf-for-leaf. If any locale is missing a translation or carries an orphan key from a removed feature, the build aborts with a precise report so the regression cannot ship to visitors in that language (web).
v0.024.013April 29, 2026
- Native admin and account translation pass — Vietnamese, Thai, Malay, Indonesian, German, French, Spanish, Portuguese, and Russian visitors now see every admin and account screen at native quality, including the email infrastructure forms, newsroom infrastructure forms, multi-factor authentication flow, the security keys and passkeys section, the two-step verification screen, and the Security page (web).
v0.024.012April 29, 2026
- MFA tailored to sign-up path — accounts that signed up with Google no longer see authenticator app or passkey enrollment on the multi-factor authentication page. Google's own two-step verification covers those accounts, and the page now shows a single card linking to manage that on Google. Email and password accounts still see the full enrollment flow (web).
- Security page tailored to sign-up path — the Security page now shows only the row that applies to the visitor's account (password management for email accounts, Google sign-in description for Google accounts), instead of half-disabled controls that imply a non-existent connection step (web).
- Forgot-password safe for Google accounts — forgot-password and reset-password now refuse to provision a password on an account that signed up with Google, while still returning a consistent generic response so the existence of any specific email is not leaked (web).
- MFA card translated — the new Google-handled MFA card and Security page copy ship at native quality in English, Korean, Japanese, Simplified Chinese, and Traditional Chinese, with the remaining locales following in a later native pass (web).
v0.024.011April 29, 2026
- Newsroom template and sections editable inside admin — pick one of the four templates from a card grid with thumbnail previews, then toggle visibility for the six newsroom sections and reorder them inline. The custom template option points to the dedicated drag-and-drop layout builder in the workspace where that editor lives natively (web).
- Section configuration validated on save — the newsroom save now strictly validates the section visibility map and section order against the allowed section names, and the template choice against the allowed templates, rejecting any unexpected keys before they reach storage (web).
- Template card translated — every label on the new template and layout card ships at native quality in English, Korean, Japanese, Simplified Chinese, and Traditional Chinese, with the remaining locales following in a later native pass (web).
v0.024.010April 29, 2026
- Two-step verification reliable — the two-step verification screen now reliably appears for accounts with multi-factor authentication enabled, with clear distinct messages for missing or invalid codes and for unverified email states (web).
- Auto sign-in respects MFA — the one-shot auto sign-in that runs right after email verification no longer issues a session for accounts that have multi-factor authentication enabled, forcing a proper second-factor step (web).
- Newsroom basics validated on save — title, description, meta title, meta description, logo text, and footer text are now length-capped on save, the header background color accepts only well-formed color values, and the newsroom locale must be one of the supported codes (web).
- Custom domain validated — invalid hostnames are now rejected with a clear error message, marcomm.work and its subdomains are reserved to avoid routing collisions, and two workspaces cannot claim the same host (web).
- Sender addresses validated — invalid email shapes are rejected, the address is normalized before storage, and the display name is length-capped (web).
v0.024.009April 29, 2026
- Two-step verification at sign-in — accounts with multi-factor authentication enabled are now required to complete a second step after password sign-in, accepting either a current authenticator app code or a one-time backup code. Google sign-in is unaffected because Google runs its own two-step verification (web).
- Backup codes single-use — signing in with a backup code now consumes that specific code so it cannot be replayed, and the remaining-codes counter on the multi-factor authentication settings page reflects the new total on the next page load (web).
- Two-step verification translated — every label on the new two-step verification screen ships at native quality in English, Korean, Japanese, Simplified Chinese, and Traditional Chinese, with the remaining locales following in a later native pass (web).
v0.024.008April 29, 2026
- Newsroom basics editable inside admin — the visible identity of the public newsroom (publish toggle, title, description, default language, header alignment, header logo text, header background color, footer text) is now edited directly in the admin newsroom infrastructure section. Structured-data previews, share-card previews, and the RSS feed all pick up the new title or description on the next render (web).
- Newsroom basics translated — every label on the new newsroom basics card ships at native quality in English, Korean, Japanese, Simplified Chinese, and Traditional Chinese, with the remaining locales following in a later native pass (web).
v0.024.007April 29, 2026
- Sender addresses editable inside admin — adding, listing, and removing sender addresses (the From and Reply-to identity used by email dispatch jobs) now happens directly in the admin email infrastructure section. Each sender binds to one configured SMTP relay, and the form clearly directs the admin to add a relay first when none exists yet (web).
- Sender address card translated — every label on the new sender addresses card ships at native quality in English, Korean, Japanese, Simplified Chinese, and Traditional Chinese, with the remaining locales following in a later native pass (web).
v0.024.006April 29, 2026
- Security keys and passkeys — the second multi-factor authentication option is now available. Register a hardware security key, a platform passkey such as Touch ID or Windows Hello, or your phone as a roaming credential. Each credential carries a user-supplied nickname, the credential type, date added, and last-used date, and can be renamed or removed inline (web).
- Discoverable across Marcomm hosts — passkeys and security keys work across the marketing site, the account sub-site, and the admin sub-site under a single relying party, so visitors can authenticate from any Marcomm host without re-enrolling (web).
- Security keys card translated — every label on the add, list, rename, and remove flow ships at native quality in English, Korean, Japanese, Simplified Chinese, and Traditional Chinese, with the remaining locales following in a later native pass (web).
v0.024.005April 29, 2026
- Authenticator app enrollment — the authenticator-app option on the multi-factor authentication page is now active. Scan a QR code or paste the manual key into your preferred authenticator, then confirm a six-digit code to enable. The shared secret is encrypted at rest with the same envelope used for other sensitive workspace credentials and is never returned again after enrollment (web).
- Backup codes — enrolling generates ten one-time backup codes that can be copied or printed. Codes are stored as salted hashes and never as plaintext, the set is shown exactly once with a copy-all and a confirmation prompt, and a regenerate flow on the same page rotates the entire set so older codes stop working (web).
- Multi-factor flow translated — every label across the enrollment, disable, and regenerate flow ships at native quality in English, Korean, Japanese, Simplified Chinese, and Traditional Chinese, with the remaining locales following in a later native pass (web).
v0.024.004April 29, 2026
- Native admin infrastructure pass — Vietnamese, Thai, Malay, Indonesian, German, French, Spanish, Portuguese, and Russian visitors now see the Workspace storage overview, Email infrastructure, and Newsroom infrastructure pages, including the SMTP relay form and the SEO and verification form, entirely in their own language. Every visible label across the admin sub-site now ships at native quality in all 14 supported locales (web).
v0.024.003April 29, 2026
- SMTP relays editable inside admin — adding, listing, testing, and removing custom SMTP hosts now happens directly in the admin email infrastructure section. The full create form, inline status badges, a one-click connection test, and an optimistic remove action are all available without leaving the admin sub-site (web).
- SMTP form translated — every label, placeholder, button, status pill, and toast on the SMTP form ships at native quality in English, Korean, Japanese, Simplified Chinese, and Traditional Chinese, with the remaining locales following in a later native pass (web).
v0.024.002April 29, 2026
- Billing pages translated — Vietnamese, Thai, Malay, Indonesian, German, French, Spanish, Portuguese, and Russian visitors now see the Buy or upgrade plan grid, Subscriptions, Payment account overview, Payment methods, Payment settings, and Transactions filter labels in their own language. The visible billing chrome no longer falls back to English in those locales; long-form copy will follow in a later native pass (web).
v0.024.001April 29, 2026
- Legal documents in Korean — Terms of Service, Privacy Policy, and Cookie Policy now ship hand-written Korean originals alongside English convenience translations, with the Language Priority clause preserved in every locale (web).
- Legal documents in 12 more locales — Japanese, Simplified Chinese, Traditional Chinese, Vietnamese, Thai, Malay, Indonesian, German, French, Spanish, Portuguese, and Russian visitors now read the legal documents in their own language, with the same authoritative-Korean disclaimer reproduced faithfully so a French reader, for example, sees the document in French and is told in French that the Korean version is the authoritative one (web).
- Workspace surface localized end-to-end — every remaining hardcoded English string inside the workspace app is now translated into all 14 supported locales, including the workspace shell, profile and member surfaces, Press CRM action buttons, the notification list and todo controls, and the custom layout builder for the newsroom (web).
v0.023.004April 29, 2026
- Dark mode infrastructure — visitors can now choose Light, System, or Dark from a three-way control in the public header, and the choice persists across visits and overrides the operating system preference. The page applies the chosen theme before the first paint so the screen never flashes the wrong palette before the dark swap (web).
v0.023.003April 29, 2026
- Email dispatch workspace stats — the email dispatch list page now shows workspace-wide aggregate metrics across total campaigns, total successful sends, distinct opened recipients, the actual open rate, and a last-thirty-days sub-total, instead of summing only the current page. Failed sends and bounced records are counted separately so they cannot double-count (web).
- Workspace setup checklist — the workspace dashboard now shows a five-step onboarding card covering newsroom configuration, first category, first media contact, first draft press release, and first publish. Each step links straight to where the work happens, and the card auto-dismisses once every step is complete (web).
v0.023.002April 29, 2026
- Press release duplicate — every press release detail page now has a Duplicate button next to Edit. One click clones the title, subtitle, lead, body, quotes, company info, contacts, attachments, thumbnail, and category into a fresh draft authored by the cloning user. Publish state is always reset so the clone never inherits a stale schedule or reviewer (web).
- Install Marcomm prompt — modern browsers on desktop and mobile now show an Install Marcomm prompt for the marketing site. Installed instances launch in their own window with the Marcomm brand theme (web).
- IndexNow publish notifications — every press release publish now notifies the IndexNow protocol so participating search engines (Bing, Yandex, Naver, Seznam) can pick up the new URL on publish instead of waiting for their next crawl (web).
v0.023.001April 29, 2026
- Account sub-site fully localized — every page on the account sub-site (Profile, Email addresses, Phone numbers, Security, Multi-factor authentication, Sessions, Notifications, Organizations, Privacy) now switches with the visitor's chosen language across all 14 supported locales, with proper plural agreement for session-event counts (web).
- Admin sub-site remaining pages localized — the admin root, audit log breadcrumb, security breadcrumb, storage settings page, and user-upgrade-requests page were the last admin surfaces still rendering English-only copy. They now switch with the visitor's chosen language across all 14 supported locales (web).
- Notification preferences keyed cleanly — the twelve-toggle notification preferences list now stores each toggle's label and description together so that adding a new preference is a one-line change to the translations rather than a code-and-translation round trip (web).
v0.022.020April 29, 2026
- Release notes language polish — every entry on this page is now in English. Older entries that quoted non-English example labels mid-sentence are now described in English so the timeline reads cleanly in a single language end-to-end (web).
- Release notes content polish — every entry was reviewed and rewritten so each item describes the customer-visible change in product-grade language. Internal artifacts that had crept into the page from in-flight engineering work were removed (web).
v0.022.019April 28, 2026
- Workspace overview translated — Workspace Overview cards and the Workspace Settings shell now read every label, description, and breadcrumb in the visitor's chosen language across all 14 supported locales (web).
- Admin members table translated — every column header, filter chip, pending-invite section, badge, empty state, and relative-time label on the admin members table now reads in the visitor's language, with proper plural agreement for pending-invite counts (web).
- New Press Kit form translated — every section heading, field label, placeholder, empty-state, action button, and validation message on the New Press Kit form now reads in the visitor's chosen language across all 14 supported locales (web).
- Unified member cell on Workspace Settings — the inline avatar, name, and email row on the Workspace Settings members tab now uses the same shared component as the workspace members directory and the folder permissions dialog, so member rendering looks consistent across every surface that lists people (web).
v0.022.018April 28, 2026
- Loading transitions tuned — the branded loader now waits a brief moment before showing, so instant route changes never flash it, and incoming page content fades in smoothly on every navigation instead of a hard cut (web).
- Folder ownership tightened — promoting a member to Owner of a folder now strictly requires the actor to already be an Owner of that folder. The role dropdown also hides the Owner option for members who could not perform the change anyway (web).
- Share panel matches policy — the folder share panel only renders sharing controls when the current member is actually allowed to share, instead of showing a control that the server would reject on submit (web).
- Member cell separator fix — a stray separator dot no longer appears when a member listing intentionally suppresses the secondary information line (web).
v0.022.017April 28, 2026
- Folder share dialog redesigned — folder permissions now use a Drive-style share dialog. Typing a name or email searches the workspace for members not yet permissioned and adds them in one click. Explicit grants render with a role dropdown (Viewer, Manager, Owner), an inline expiry date, and a one-click revoke action. Workspace owners and admins appear in a separate immutable section since their access is enforced at a higher tier (web).
- Two new folder policies — Allow content managers to share folders (off by default) and a configurable list of who can download, copy, and print (Contributors and Managers always allowed; Commenters and Viewers can be toggled). Both settings are gated to Owners and workspace admins (web).
- Unified member cell — avatar or initials, display name, position, and a secondary line for department or country. The members directory and the folder share dialog now use the same shared component so member rendering looks the same across every surface (web).
- Member expiry column — the workspace members list adds an Expiry date column. Expired memberships are flagged with a clear Expired pill, and owners are visually distinguished with an ownership icon for instant recognition (web).
- Newsroom chart hover redesigned — the daily-views chart on the newsroom dashboard now uses a softer, layered hover marker with a halo, a brand-tinted ring, and a clean filled core, plus a softer dashed cursor line. Reads like a modern editorial chart (web).
- 404 page polished — the not-found page now matches the branded loader tone, with a centered logo, subtle float animation, brand eyebrow, softer headline, refined Go home and Go back actions, and a discreet Marcomm AI wordmark at the bottom (web).
- Press Kit form delete buttons repositioned — contact, product, and executive cards in the press kit form now have an always-visible top-right delete icon on its own header row alongside a numeric label, instead of a hover-only icon that drifted half outside the card (web).
v0.022.016April 28, 2026
- Workspace Owner role reintroduced — a workspace founder is now identified as Owner, distinct from regular Admins. Workspace creation assigns Owner to the founder, and every surface that lists workspace members (admin members table, settings, account organizations, profile chrome, members directory) renders the Owner badge consistently. Existing workspaces were migrated as part of the rollout (web).
- Transfer ownership fixed — transferring ownership now correctly assigns Owner to the new holder and demotes the previous owner to Admin in a single atomic step (web).
- Sole-owner safety check restored — the account deletion gate that prevents the last Owner from orphaning their workspace now correctly recognizes Owner-tier memberships, so a sole owner can no longer accidentally delete their account (web).
- Branded loader replaces shimmer skeletons — authenticated routes now show a centered logo with a breathing pulse and a wait indicator while content streams. Per-page skeleton blocks that did not match the real content are gone (web).
- Press Kits filter alignment — the All / Public / Private filter on the Press Kits page now sits at the right edge of the search row, matching the Content Library page layout (web).
- File upload reliability — file uploads in production are stable again after a brief configuration regression (web).
v0.022.015April 28, 2026
- Folder permissions and visibility — every folder in the Content Library now has a Settings panel with General (rename and visibility), Permissions (assign Owner, Manager, or Viewer per member), and Danger zone (type-the-folder-name to delete). Folders can be workspace-wide (default) or restricted to listed members. Restricted folders are filtered out of the list for non-permitted members so their names cannot be enumerated (web).
- Folder depth capped — creating a sub-folder beyond the second level is now rejected, and the New folder button shows disabled with a tooltip explaining the limit instead of silently disappearing (web).
- Drop onto folder uploads — dragging files onto a folder card now uploads directly into that folder, with a clear drop-target highlight. The upload pipeline runs in parallel so large batches finish far faster than the old sequential implementation (web).
- Root relabeled to Content Library — the breadcrumb and page-header label now reads as the natural product name across all 14 supported locales, since users reported not recognizing "Root" as the library (web).
- Press CRM contacts page restored — the media type dropdown on the Press CRM contacts page used a UI component layout that the latest framework version rejects. The search filters now work again (web).
- File upload reliability — file storage configuration was reverified end-to-end so uploads land reliably in production (web).
v0.022.014April 27, 2026
- Admin pages native in 9 more locales — Vietnamese, Thai, Malay, Indonesian, German, French, Spanish, Portuguese, and Russian visitors now see the Workspace identity, User upgrade requests, AI defaults tier names and descriptions, and Storage settings labels in their own language. Long-form copy on the remaining admin and billing pages will follow in a later native pass (web).
v0.022.013April 27, 2026
- AI defaults editable inside admin — the workspace default AI tier (Light, Standard, Premium) is now selected directly in the admin AI defaults section through a radio-card form, and applies to the next press-release generation (web).
- Default tier remembered per workspace — workspaces now remember the AI tier the owner picked, defaulting to Standard for any workspace that has not set one yet (web).
v0.022.012April 27, 2026
- Subscriptions and Payment settings localized — the two remaining billing pages now read body copy from the billing translations. Subscriptions covers plan details, storage, estimated monthly bill, the price breakdown, billing details, the cancel-or-refund header, and the invoice footer. Payment settings covers the three sections (Payments account, Payments profile, Payments users) plus every row label. Native quality in English, Korean, Japanese, Simplified Chinese, and Traditional Chinese; the other nine locales will follow in a later native pass (web).
v0.022.011April 27, 2026
- Newsroom SEO and verification inside admin — Google Site Verification, Naver Site Verification, organization display name, Google Analytics ID, and Tag Manager ID are now edited directly in the admin newsroom infrastructure section. Pasted tokens, including full meta-tag wrappers, are normalized on save (web).
- SEO form translated — every label on the SEO and verification form ships at native quality in English, Korean, Japanese, Simplified Chinese, and Traditional Chinese, with the remaining locales following in a later native pass (web).
v0.022.010April 27, 2026
- Billing pages localized — Payment account overview, Payment methods (Primary, Backup, Other), and the Transactions and Invoices page now read body copy from the billing translations. Balance card, "how you pay" section, transactions empty and populated states, payment method primary card and backup call-to-action, the PCI compliance note, and the transactions filter chips all switch with the visitor's locale. Native quality in English, Korean, Japanese, Simplified Chinese, and Traditional Chinese; the remaining locales follow in a later native pass (web).
v0.022.009April 27, 2026
- Buy or upgrade chrome localized — the Plans and Add-ons section headers, the supporting taglines, the frequently asked questions block, and the breadcrumb labels on the Buy or upgrade page now switch with the visitor's locale. Native quality in English, Korean, Japanese, Simplified Chinese, and Traditional Chinese; the remaining locales follow in a later native pass (web).
v0.022.008April 27, 2026
- Admin sub-section pages localized — every admin sub-section page (Workspace identity, Newsroom infrastructure, Email infrastructure, AI defaults, Upgrade requests, Storage overview, Storage settings) now reads its body copy in the visitor's chosen language, at native quality in English, Korean, Japanese, Simplified Chinese, and Traditional Chinese, with the remaining locales following in a later native pass (web).
- AI defaults tier names localized — the Light, Standard, and Premium tier headers and their descriptions on the AI defaults page are now translated; underlying model identifiers intentionally remain literal across all locales (web).
- Storage breakdown localized — the storage overview legend (Images, Videos, Audio, Documents, Archives, Other) and every supporting paragraph now switch with the visitor's locale (web).
- Storage settings localized — the user storage limit toggle, unit selector, info banner, error messages, and action buttons all read from translation keys (web).
- Upgrade requests toggle localized — the Allow and Don't allow labels, descriptions, and info banner translate consistently across all 14 supported locales (web).
v0.022.007April 27, 2026
- Per-user storage limits enforced — when an admin sets a per-member storage cap on the Storage settings page, file uploads are now actually blocked once a member crosses their limit. The error message clearly distinguishes a personal limit block from a workspace-wide block so the right person can act (web).
- Admin sidebar fully localized — every label in the admin sub-site sidebar now renders at native quality across all 14 supported locales, with no raw English fallbacks for non-English visitors (web).
- Sign-in history confirmed working — the Sessions page on the account sub-site now surfaces every successful sign-in across every workspace the account belongs to (web).
v0.022.006April 27, 2026
- Settings split across admin and workspace — the admin sub-site now hosts a dedicated Workspace identity, Newsroom infrastructure, Email infrastructure, and AI defaults section so plumbing-grade settings live with the access tier that controls them. Day-to-day content settings stay in the workspace UI where the people editing them already work (web).
- Admin sidebar grouped — the admin left navigation now reads as Overview, Members, Workspace identity, Billing, Workspace infra, Audit and security, Storage, and Policy. Sub-items under each group expand on click and the active group auto-opens so the current page stays visible (web).
- Older settings URLs forward — older settings tab URLs on a workspace now forward permanently to the matching admin section so external bookmarks and email links keep working (web).
- Notification preferences sync across devices — toggles on the account Notifications page now persist to the server, so changing a setting on one device carries to the next. Critical security and billing emails remain mandatory (web).
v0.022.005April 27, 2026
- Release notes layout — the release notes page is now a two-column layout on desktop with the year and month filter pinned to the left as a sticky sidebar, so the timeline stays in view while switching between time ranges. Each year and month row also shows a release count. On mobile the filter collapses back to the top (web).
- Release notes content polish — every entry was reviewed and rewritten so each item describes the customer-visible change in product-grade language. Internal artifacts that were not meant for the public side have been removed throughout (web).
v0.022.004April 27, 2026
- Newsroom organization knowledge graph — the public newsroom now exposes the workspace's mailing address and customer support contact in its structured data when those fields are populated on the workspace profile, so search engines can surface them in the verified-business badge and the contact button (web).
- Newsroom clips video search eligibility — the YouTube clips section on the newsroom homepage now publishes the structured-data signals search engines need to surface clips in their video rich result carousel (web).
- Structured data validator — every public structured data block on canonical URLs is now automatically checked for required fields and well-formed dates, suitable for continuous integration (web).
v0.022.003April 27, 2026
- Newsroom analytics handshake parallel — when Google Analytics or Tag Manager is configured on a newsroom, the setup for those scripts now runs alongside the rest of the page load instead of blocking it, so perceived load time improves visibly on slower networks (web).
v0.022.002April 27, 2026
- Press release named author byline — published press releases now surface the named author and job title in their structured data and on the public header, instead of attributing every article to the publisher organization. The byline falls back gracefully to the publisher when the author is anonymous or has left the workspace (web).
v0.022.001April 27, 2026
- Admin sub-site shell localized — the admin sub-site shell (sidebar navigation, mobile drawer, workspace selector, back-to-workspace footer) is now translated across all 14 supported locales. Sidebar items and the Billing sub-group all render in the visitor's chosen language (web).
- Account sub-site shell localized — the account sub-site shell (top header, mobile drawer, profile menu, avatar dropdown, sidebar) is now translated across all 14 supported locales. The Marcomm wordmark is intentionally kept as a brand reference (web).
v0.021.006April 27, 2026
- Marketing site structured data — every marketing page and newsroom now ships connected Organization, WebSite, and SoftwareApplication structured-data nodes so search engines read Marcomm and Digitalog as one consistent entity graph (web).
- Press release SEO preview — the new and edit press release pages now render an SEO preview above the live publish preview, with a search engine result preview, a share card preview, and a checks list covering title length, description length, hero image, and body image captions. Each issue shows a clear inline warning so common pre-publish mistakes are caught before the article goes live (web).
v0.021.005April 27, 2026
- Subscription guide native pass — the three Subscription guide entries previously carried English placeholder copy in 12 of the 14 supported locales. Translations are now native-quality in each language, with the appropriate formality register and region-appropriate orthography (web).
v0.021.004April 27, 2026
- Newsroom dashboard localized — the 30-day statistic cards, chart title, and Top Pages and Top Countries headers on the newsroom dashboard now read in the visitor's chosen language across all 14 supported locales (web).
- Members directory headers translated — the workspace members directory column headers (Name, Position, Team, Country, Role) now have proper translations across all 14 supported locales (web).
- Admin and account shells localized — the admin and account sub-site sidebars now render their navigation items, mobile menus, brand labels, and the back-to-workspace and sign-out actions in 14 languages (web).
v0.021.003April 27, 2026
- Subscription guide native pass — the three Subscription guide entries are now hand-translated to native quality in each of the 12 locales that previously carried English placeholder copy (web).
v0.021.002April 27, 2026
- Sub-site routing reliability — new automated test coverage locks in the contract that the admin and account sub-sites resolve correctly while reserved sub-sites continue to hard-not-found, so future routing changes cannot silently expose a non-customer surface or break the admin or account experiences (web).
v0.021.001April 27, 2026
- Product feature pages localized — the six product feature pages (AI Press Release, Online Newsroom, Media Library, Press Kit, Press CRM, Monitoring) are now translated into all 14 supported locales in professional product-marketing tone. Brand identifiers intentionally stay literal (web).
- Locale-aware page metadata — the six product feature pages now switch the browser tab title, meta description, and structured-data name with the visitor's locale, so Korean visitors see Korean tab titles, German visitors see German tab titles, and so on (web).
- Brand Guide localized — the public Brand Guide page is now hand-translated end-to-end across all 14 supported locales. Brand specifications such as the brand color name, color values, font names, and wordmark text intentionally remain literal in every locale (web).
v0.020.002April 27, 2026
- Buy or upgrade redesigned — the page now opens with a hero that compares the workspace's current usage to its plan limits and recommends the smallest plan that comfortably fits, with reasons spelled out. Storage, members, and monitoring are shown as inline progress bars that turn warm at 80 percent and hot at 95 percent so the constraint is obvious at a glance (web).
- Plan grid expanded — each of the four plans now shows the full feature set (storage, member cap, dispatch contact cap, monitoring availability, support tier) instead of a one-line blurb. The recommended plan carries a Recommended badge so the next step is unambiguous, and the current plan is labelled in plain text rather than as a disabled button (web).
- Add-ons reorganized — add-ons now group into Power up, Connect, and Service. Each card carries a price, a one-line value statement, and a plan gate where applicable, and every action either opens checkout or routes to sales (web).
- Allow upgrade requests setting — owners can now allow or block non-admin members from requesting a workspace plan upgrade. The default is allowed (web).
- Per-user storage limit setting — owners can switch on an individual storage cap per workspace member, applied at the workspace level (web).
- Smarter plan recommendation — the plan recommender now weighs recent blocked actions, current usage relative to plan limits, and feature attempts on plans that lack them. Workspaces comfortably below every threshold see no upgrade nag; everyone else sees a single specific recommendation (web).
v0.020.001April 27, 2026
- Dedicated admin sub-site — workspace administration now lives in its own dedicated sub-site, with a workspace switcher for visitors who administer more than one workspace. Members, billing, audit log, security, storage, and settings all live there in their own shell so they never get lost in day-to-day workspace navigation (web).
- Personal account sub-site — the account sub-site now hosts profile, security, sessions, notifications, organizations, and privacy in a clean sidebar layout. Profile fields cover the full personal information set (first, last, and display name, gender, country, language, time zone, date and time format), with separate cards for email addresses and phone numbers (web).
- Workspace storage overview — the Storage page in admin now shows total usage with a stacked breakdown by file category, the top members by storage, and the top folders. A new Storage settings screen lets owners enable per-member storage limits (web).
- Billing reorganized — billing is now split into Subscriptions, Payment account, Buy or upgrade, Invoices, Payment methods, and Payment settings. Subscriptions shows a clean plan summary with primary actions and a details stack covering plan details, billing details, and cancel or refund. Buy or upgrade includes a four-tier plan grid alongside an add-ons catalogue (web).
- Members directory list view — the workspace Members page now renders as a list with avatar, name, email, position, team, country, and role columns instead of standalone cards. The admin Members page also shows last sign-in time, per-user storage usage, internal versus external classification, and a separate panel for pending invitations (web).
- Invitation expiry — workspace invitations now accept a custom expiry window so admins can issue short-lived links for guest collaborators or longer windows for vendors (web).
- Polished interactions — every clickable surface now uses a pointer cursor and a consistent transition by default, so hover feedback feels uniform across the product (web).
- Press release status filter — the press releases status filter dropdown previously rendered raw key names in non-English locales because of a translation key collision. The dropdown now uses clean labels in every supported language (web).
- Marketing header tidy-up — the Newsroom link in the marketing header and footer used to point at a hard-coded internal workspace, which surprised every visitor. The link has been removed until a Marcomm-branded newsroom landing page is ready (web).
v0.019.007April 26, 2026
- Stable URLs across language switches — switching the interface language now keeps the URL exactly as it is, so a link copied from the address bar always points at the same page regardless of which language the next visitor reads it in (web).
- Canonical workspace addresses — every workspace now lives at a single canonical URL on its own sub-site. Older bookmarks and hand-typed paths that addressed a workspace through the main marketing domain are forwarded to the canonical address so cookies, sign-in callbacks, and shared links all line up with one host (web).
- Locale preference travels with you — the chosen interface language is now remembered across the marketing site and every workspace, so signing in or moving from a public newsroom into your workspace no longer resets the language (web).
v0.019.006April 24, 2026
- Public newsroom image rendering — the public newsroom's favicon, header logo, Open Graph image, social-link icons, press release thumbnails, press kit logos, and media album assets now render reliably for anonymous visitors. CDN caching keeps repeat requests fast.
- Strict image scope — only images that have been intentionally published as part of the newsroom (logo, share image, press release thumbnail, published album asset) are exposed; private workspace files remain gated by the same access controls as before.
v0.019.005April 24, 2026
- IndexNow on press release publish — Bing, Yandex, Naver, and Seznam.cz are now notified the moment a press release is approved or distributed, so they can re-crawl within minutes instead of waiting for the scheduled bot pass. Fire-and-forget with a 5-second timeout, so the publish action never waits on the external call. Gracefully disabled when the integration key is not configured.
- Newsroom key-file route — every newsroom now serves the IndexNow verification key at its own URL when the newsroom is published, satisfying the search engines' ownership check. The same path works under the custom subdomain (`{slug}.marcomm.work/indexnow-key.txt`) and the main-domain path form.
- Instant publish visibility — approving a press release for review, or distributing one to the public newsroom, now invalidates the newsroom homepage, the press-releases listing, the sitemap, and the RSS feed on the very next request. Previously everything waited out a 5-minute cache TTL before the new release appeared.
- Newsroom dashboard translations — stat cards, chart title, and table headers on the newsroom dashboard now render proper localized labels instead of exposing the raw translation keys. Missing entries were filled in across all 14 supported locales, and the Save / Update buttons on the story, announcement, and media-album forms now resolve correctly as well.
- Newsroom chart hover — hovering the 30-day views chart now shows a tooltip with the date, total visitors, and per-page breakdown for the top pages on that day, matching the cadence of Google Analytics. Cursor switches to a crosshair on the plot area.
v0.019.004April 24, 2026
- Release notes editorial pass — this page is now a product-grade changelog rather than an engineering diary. Every entry was reviewed and rewritten so that release notes describe what changed for customers, not how the change was implemented internally.
- Release notes English-only — remaining Korean and mixed-language strings in older entries were translated to English so the public release-notes page reads consistently in one language across every release. The empty-state copy on the release timeline is now in English as well.
- Release notes format consistency — every release item now follows the Title
v0.019.003April 24, 2026
- Tenant-attribution regression tests — new coverage locks in the contract that runtime errors are always attributed to the active workspace so per-tenant audit queries stay accurate through future refactors. Test suite is fully green.
v0.019.002April 24, 2026
- Language switcher scrollbar removed — the Globe dropdown in the marketing site header and footer now shows all 14 locales in a single panel without an internal scrollbar. Cleaner visual and fixes a paper-cut where keyboard tab-scroll and touchpad wheel-scroll were misaligned.
v0.019.001April 24, 2026
- Subscription cancellation lifecycle — paid workspaces can now cancel at any time and keep every paid feature until the current billing period ends. On expiry the workspace switches to the free plan automatically, with consistent quotas and feature availability across every tier (Free / Pro / Team / Enterprise).
- Auto-downgrade on expiry — when a canceled subscription reaches its billing period end, the workspace transitions to the free plan, the storage quota drops to the free-tier limit, and active news monitoring keywords are paused. No files are deleted: existing storage stays readable and downloadable, and over-quota workspaces become read-only until usage is reduced or the plan is restored.
- Re-subscribe restoration — reactivating a subscription restores the plan, the storage limit, and re-enables only the monitoring keywords that were paused by the downgrade. Keywords muted manually before downgrade stay muted.
- One-click reactivate — admins can reverse a cancellation within the grace window with no new payment and no other side-effects. After the billing period has ended and the workspace is already on the free plan, reactivation goes through a fresh checkout.
- Guide page — three new entries under Credits & Billing: "Cancel your subscription", "What changes on the free plan", and "Reactivate or resubscribe". Full Korean and English copy at launch; the other 12 locales follow in the next translation pass.
v0.018.043April 24, 2026
- Public newsroom nav/footer localized — the 7 nav/footer labels on every public newsroom (Press Releases, Our Story, Press Kit, Notices, Clips, Popular Press Releases, Company Info) plus the search placeholder were previously hardcoded in a single language. They now read from the newsroom's own configured locale across all 14 supported locales. A French-language newsroom shows "Communiqués de presse" to every visitor regardless of their browser language
- Newsroom search placeholder localized — the header search field now respects the newsroom's configured locale, falling back to "Search…" when no translation is set.
v0.018.042April 24, 2026
- Distributed rate-limit completeness — every auth-surface endpoint now shares the same globally-consistent rate-limit counter across lambda instances, with a safe in-memory fallback if the distributed backend is unavailable. Closes the last outstanding rate-limit item from the launch-readiness ledger.
- Health-check regression coverage restored — the health endpoint test now runs correctly in CI. Full regression suite is green.
v0.018.041April 24, 2026
- Subdomain /llms.txt served correctly — the per-newsroom /llms.txt file is now reachable on both the main-domain and subdomain newsroom URLs, matching the behavior of rss.xml, sitemap.xml, and robots.txt.
v0.018.040April 24, 2026
- Newsroom settings UI i18n — every label introduced in the recent newsroom-settings batch (description placeholder, footer copy, social links, image-upload hints, platform name and icon controls) is now fully localized across all 14 supported languages. The social-links editor also reads from the same translation set.
v0.018.039April 24, 2026
- Header navigation restructured — 4 top-level items: Features (dropdown of 6), Resources (dropdown of 4), Pricing (link), Newsroom (external link to the featured newsroom). Contact removed from header (still reachable from footer Company column). Resources dropdown trimmed to Blog / Guide / Brand Guide / Release Notes. Multi-dropdown state handling lets several disclosure panels coexist without collisions; click-outside, Escape, 150 ms close-grace, and focus-visible ring all carried over.
- 6 new product feature deep-dive pages — dedicated pages for AI Press Release, Online Newsroom, Media Library, Presskit, Press CRM, and Monitoring. Each follows the homepage BI: full-bleed Marcomm Purple hero with a single Get Started CTA, intro + highlights grid, per-feature step sections with tip callouts localized across all 14 languages, and a bookend purple CTA. WebPage JSON-LD, canonical metadata, and hourly revalidation per page. All 6 added to the sitemap at priority 0.85.
- /news page deleted — the standalone news landing was redundant with the press-release timeline and the blog. References cleaned out of the sitemap, robots rules, middleware public paths, and the resources hub page. The now-unused news i18n namespace was removed from all 14 locale files after confirming zero source-code consumers.
- Sales / demo CTAs removed sitewide — Marcomm has no sales team and no demo product to show, so every "Contact Sales" / "Watch Demo" CTA was misleading. Homepage hero, homepage final CTA, /features final CTA, /pricing final CTA: secondary buttons stripped, only the primary Get Started → /sign-up remains. Pricing Enterprise tier CTA relabeled "Contact Us" (per-locale natural translation) and re-pointed from a sales mailto to /contact.
- Brand-guide section-title de-duplication — section numbers no longer render twice on the Brand Guide page. The section number stays visible in the sticky TOC sidebar, preserving navigation context without the inline duplication that cluttered each section header.
- Brand-guide i18n — the Brand Guide page is now fully localized across all 14 supported languages (metadata, hero, TOC labels, every section title and body, and button labels). Korean and English are hand-written; the other 12 locales fall back to English copy pending a translation pass. Brand-specific tokens (hex codes, font names, wordmark text) are intentionally kept literal across locales.
- Footer Legal column key fix — locale switches no longer cause unnecessary re-renders of the footer legal links, eliminating a flicker on language change.
v0.018.038April 24, 2026
- Reserved-slug protection — workspace slug creation now rejects names that would collide with system routes, platform reserved segments, or supported locale codes. Case-insensitive normalization is applied at every entry point (API, middleware, path-routing helper) so all layers share the same canonical rule.
- Multi-tenancy hygiene cleanups — site-admin role checks consolidated into a single helper with stricter email validation (case-insensitive, full local-part and domain match). Error logging now correctly attributes runtime errors to the active workspace for per-tenant audit separation.
- Security regression tests — new automated test coverage locks in the multi-tenancy and site-admin authorization surfaces so reserved-name rules, email validation, and workspace creation guards stay enforced through future refactors.
v0.018.037April 24, 2026
- Newsroom keywords — newsrooms now accept a comma-separated list of topical keywords that emit as meta keywords on every newsroom page and fold into every press release's NewsArticle schema alongside the category label and publisher name. Topical clustering signal for Google News and LLM search surfaces.
- Newsroom canonical URL override — newsrooms served on a custom domain can override the canonical URL so search engines attribute the content to that domain instead of the default marcomm.work path. Leave blank to keep the default canonical. Inputs are validated as absolute HTTPS URLs.
- Newsroom Twitter card type — newsrooms can choose which Twitter card style to emit (summary or summary_large_image). Player-style cards are reserved for a future release.
- Newsroom indexable toggle — a new switch puts the public newsroom into a soft-unpublish state, so the site stays reachable by URL but drops out of Google, Bing, and Naver indexes. Useful for staging a newsroom before launch without pulling it offline.
- Newsroom track-links toggle — admins can disable both click-tracking and external analytics for a newsroom. Useful for internal test newsrooms that shouldn't pollute analytics, or for admins who want a GDPR-style opt-out before launching.
- SEO settings fully wired — all five new SEO fields above save, persist, and feed directly into the public newsroom's metadata, JSON-LD, and tracker. The SEO settings tab is now fully connected instead of half the inputs being cosmetic.
v0.018.036April 24, 2026
- Newsroom description field wired — the channel description (used by RSS, default meta description, and the newsroom homepage) had backend storage but no UI. A Description textarea now sits under Newsroom Title in the Basic settings tab and saves with the Basic Settings Save action.
- Footer copy unified — replaced two redundant company-info / copyright inputs (neither of which reached the API) with a single Footer Text field bound to what the public newsroom footer actually renders. A hint line clarifies that workspace address, phone, and email come from the workspace profile and render automatically under the footer logo.
v0.018.035April 24, 2026
- Multi-tenancy hygiene pass — site-admin role checks consolidated into a single canonical helper with stricter, case-insensitive email validation. Error logging now correctly attributes runtime errors to the active workspace, and tenant-isolation strategy decisions are documented in-code for future maintainers.
v0.018.034April 24, 2026
- Newsroom image uploads wired end-to-end — favicon, header logo, and Open Graph image upload controls in the workspace settings page were dummy placeholders; they now upload through the organization files API with a loading spinner, inline preview, and a Remove button.
- Newsroom metadata uses the uploaded images — the newsroom now emits its configured favicon for browser tabs and the configured Open Graph image as the default share card. Section pages inherit the newsroom-wide OG image; press release and press kit pages still override with their own thumbnail.
- Newsroom header logo renders the uploaded image — the public newsroom header shows the uploaded logo image when set, falling back to the configured logo text otherwise. Each newsroom controls its own logo independently of the workspace-level logo.
- Dead footer-logo UI removed — the "Footer Logo" upload field pointed at a column that never existed, so it was a placeholder that saved nothing. Removed until a separate footer logo is actually required; for now the footer reuses the header logo.
v0.018.033April 24, 2026
- View Newsroom button host-aware — the View-Newsroom link on the workspace newsroom dashboard used to always point at the main-domain newsroom path. On a subdomain host that path hit the unexpected-error boundary. The button now detects the current hostname and picks the correct path so both subdomain and main-domain views resolve to the same public newsroom.
- Newsroom settings type tightened — the NewsroomSettings interface now declares its social-links field so access is type-checked (previously untyped). A dead unused-state triplet was also removed from the workspace newsroom dashboard page.
v0.018.032April 24, 2026
- Reserved-slug protection — workspace slug creation rejects names that would collide with system routes, platform reserved segments, or supported locale codes. Middleware and path-routing share the same canonical rule and apply case-insensitive enforcement at every layer.
v0.018.031April 24, 2026
- Subdomain newsroom links fixed — internal links inside a public newsroom (press releases, categories, media library, related articles, pagination, back-to-newsroom) used to 404 on a subdomain host due to an over-eager tenant-prefix rewrite. Middleware now short-circuits the already-public newsroom app tree so both the tenant alias and the slug path resolve cleanly.
- View Newsroom button host-aware — the workspace newsroom dashboard link now detects the current hostname and picks the correct path on subdomain vs main domain, fixing a routing mismatch that previously tripped the same 404 as the middleware issue above.
- Newsroom settings type tightened — the NewsroomSettings interface now declares its social-links field so access is type-checked (previously untyped). A dead unused-state triplet was also removed from the workspace newsroom dashboard page.
v0.018.030April 24, 2026
- /guide page redesigned — Featurebase / Stripe help-center pattern. The decorative purple-blob hero is gone; in its place is a centered title + a prominent search input that drives the same scroll-spy state as the sidebar. Picking a result jumps straight to the matching article without a server round-trip.
- Sidebar nav rebuilt — per-section colored icon tiles (Rocket / FileText / FolderOpen / Users / Newspaper / BarChart3 / TrendingUp / Settings / CreditCard) and a left-rail active indicator. Section headers are 13 px semibold instead of the prior 11 px all-caps tracking, so users can scan by shape + colour rather than re-reading every label. Sidebar widened and remains sticky while scrolling.
- Mobile drawer brought in line with the desktop sidebar — the same colored icon + readable section label + left-rail active marker. Previously the mobile drawer used a different all-caps style that diverged from desktop after the redesign.
- Search now matches body content — title, section name, description, every step, and the tip text are all folded into one lowercased haystack. Title hits sort first; body hits include a ±100-character contextual snippet around the matching term (with our `bold` / `` `code` `` markers stripped for display). Result cap raised from 8 to 10.
- Search keyboard nav — Enter selects the first result, Escape clears the query and closes the dropdown. Outside-click dismissal already worked.
v0.018.029April 24, 2026
- Faster article load — press release detail pages now hint the browser to start fetching the hero image as soon as possible, noticeably improving perceived load time on articles with a hero photo.
- Faster newsroom homepage — the public newsroom homepage now preloads the first hero-carousel image so the rotator no longer flashes a placeholder on slow connections.
v0.018.028April 24, 2026
- Newsroom analytics — referrer buckets
- Newsroom analytics — device breakdown
- Newsroom dashboard UI — Referrers and Devices cards added under Top Countries, each with a skeleton loader and empty state. Fills the gap where admins previously had to guess where newsroom traffic was coming from.
v0.018.027April 24, 2026
- Category landing pages — every press-release category now has its own dedicated landing page with a paginated list of releases in that category and the structured-data signals search engines need to recognize it as a topical index.
- Press release category label routes to its category — the coloured category badge above each release title is now a clickable link to the category landing page, giving readers and search crawlers a clear internal path from any article back to its topical index.
- Sitemap includes category URLs — the newsroom sitemap now lists one entry per category that has at least one published press release. Empty categories are skipped to keep the sitemap lean.
v0.018.026April 24, 2026
- Newsroom social links editor — Settings → SEO now has a Social Links editor. Six built-in platforms (Twitter/X, Facebook, LinkedIn, Instagram, YouTube, Threads) each get a toggle switch and URL field; toggle off removes the link. An Add Custom Platform button creates rows for any other social presence with icon upload, name, and URL. Uploaded icons count against the workspace storage quota.
- Newsroom footer social icons — every public newsroom footer now renders configured social links next to the company info block. Built-in platform names get matching icons; custom entries use their uploaded icon (or a generic link fallback). All links open in a new tab with the rel attributes Mastodon and other ActivityPub servers honor for verified cross-domain self-profiles.
- Consistent platform icons — the footer always renders the same icon for a given platform regardless of how the admin saved the entry, so the row admins see in Settings and the icon visitors see in the footer never disagree.
v0.018.025April 24, 2026
- Legacy admin and profile hosts retired entirely — the standalone admin and profile subdomains have been removed. Admin and profile pages now live exclusively inside the workspace, and the earlier transition-period redirect layer is no longer needed.
v0.018.024April 24, 2026
- Resources dropdown accessibility — keyboard users now get a visible focus ring on the Resources disclosure button, giving screen-reader users the indicator they need to know which nav item is active before pressing Enter.
- i18n cleanup — orphaned legacy legal-link translations were removed from all 14 locale files to reduce translator noise and prevent drift between duplicate label variants pointing to the same destination.
v0.018.023April 24, 2026
- Newsroom social links for SEO — admins can configure links to the organization's social profiles (Twitter/X, Facebook, LinkedIn, Instagram, YouTube, Threads) plus arbitrary custom platforms with a custom icon. The newsroom homepage and press kit detail page now expose these in structured data so Google Knowledge Graph can reconcile the organization identity across platforms
v0.018.022April 24, 2026
- Newsroom llms.txt published — every newsroom now serves a citation-ready index following the llms.txt spec, with the key section URLs, feed URLs, and the most recent press releases as markdown links. AI search engines (Claude, ChatGPT browse, Perplexity, etc.) can pick up the newsroom and cite it back in answers within a few crawl cycles.
- robots.txt advertises llms.txt — the newsroom robots.txt now mentions the llms.txt location alongside the sitemap so AI crawlers that look for it discover it without an extra request.
- Richer share-card metadata — press release share cards on Facebook, LinkedIn, and similar surfaces now carry the article's category and publisher information so social platforms can group cards by topic.
v0.018.021April 24, 2026
- Newsroom section pages — full SEO metadata sweep across the Press Releases, Our Story, and Notice sections. Each now emits a proper page title including the organization name, a descriptive meta description, a canonical URL, and rich Open Graph and Twitter share cards.
- Our Story rich classification — the Our Story page now signals "company story" content to search engines so it can feed the organization's knowledge-graph summary while still acting as the paginated story index.
- Section-page breadcrumbs — the Press Releases, Our Story, and Notice section pages now publish breadcrumb structured data so search results can render the navigation path in place of a bare URL on mobile.
v0.018.020April 24, 2026
- Legacy admin and profile hosts deprecated — the standalone admin and profile subdomains are retired. Admin and profile pages now live natively inside the workspace at `{slug}.marcomm.work/admin/*` and `{slug}.marcomm.work/profile/*`. Legacy URLs redirect transparently during the transition.
v0.018.019April 24, 2026
- Marketing site polish — page-top eyebrow tags ("Platform Features", "Pricing", "Legal", etc.) removed from every public landing (features, pricing, news, guide, blog, contact, privacy, terms, cookies, release notes, resources). Section-level eyebrows on multi-section pages (homepage, pricing inner sections, brand-guide hero) kept since they help orient long pages. Hero badges had been rendering with awkward letter-spacing, so page heroes now lead with the H1 directly.
- Resources nav becomes a hover dropdown — header "Resources" link no longer routes to a hub page; instead opens a 6-item dropdown on hover (mouse) and click (touch / keyboard) with News / Blog / Guide / Brand Guide / Release Notes / Newsroom. Click-outside, Escape, and a 150 ms close grace window prevent accidental dismissal when the cursor crosses the gap between trigger and panel. Mobile menu inlines the same 6 items under a "Resources" section heading.
- Footer Legal column de-duplicated — the bottom-row strip used to repeat Terms / Privacy / Cookie Settings with inconsistent per-locale labels. Bottom row is now copyright-only; all legal links live exclusively in the Legal column with consistent wording. Brand Guide and Release Notes moved from Product/Company columns into Resources to align with the nav dropdown.
v0.018.018April 24, 2026
- Newsroom sitemap with images and news — the newsroom sitemap now attaches image data (title + caption) to every press release and album entry that has a thumbnail, and recently published releases get the news-feed signals search engines use for time-sensitive ranking.
- Newsroom RSS with hero images and publisher attribution — every press release in the RSS feed now carries the hero image and the publisher name in the standard fields major readers (Google News, Apple News, Feedly) recognize without custom parsing.
- Google Discover-eligible previews — the newsroom and press release pages now publish the metadata signals Google needs to use a large preview image and a longer snippet, instead of capping previews to thumbnail size.
- Related-article linking for press releases — same-category press release suggestions already shown in the Related section are also surfaced in the article's structured data so search and LLM crawlers see the same "see also" map as readers do.
- Newsroom homepage SEO surface — the public newsroom homepage now ships the same canonical, share-card, RSS-discovery, and large-preview metadata as press release detail pages, keeping the entire newsroom on a consistent SEO baseline.
v0.018.017April 24, 2026
- Press release body-image surfacing — every in-body image (not just the hero) now appears in the article's structured data, so each image can show up independently in image search results and LLM crawlers see richer visual context.
- Press release HowTo recognition — when a press release's body reads as a numbered walkthrough (3+ steps), the article qualifies for Google HowTo rich results automatically, with no editor work required.
- Media library structured data — the public media library list page and album detail pages now publish the structured data Google needs to surface them in the Image Pack as a recognized gallery.
- Press kit catalog structured data — the public press kit hub now signals to search and LLM crawlers that it's a structured catalog of releases.
- Search-result page hygiene — the public newsroom search page now signals "follow links but don't index this page" to search engines, per Google's guidance for search-result pages, so link equity flows without duplicate-content dilution.
- Workspace role model simplified — the legacy owner tier has been merged into the regular Admin role. New workspaces create their first member as an Admin, and existing owner-tier memberships were migrated to Admin. Sole-admin safeguards, the Transfer Ownership flow, and account-removal safety checks continue to work unchanged against the simpler role set.
v0.018.016April 24, 2026
- Email body BI — CTA buttons (verify, reset password, data export ready) and inner highlight boxes now use the rounded-xl (12px) radius standard, matching the rest of the BI button system. Outer card stays at rounded-2xl (16px). Visual coherence across Gmail, Apple Mail, Outlook, KakaoTalk.
- Workspace dashboard polish — greeting headline bumped from text-xl/medium to text-2xl/3xl extrabold tracking-tight (proper page-title weight), "New Release" CTA upgraded to rounded-xl + soft purple shadow + btn-press, stat cards now use rounded-2xl with a tinted purple icon container and 3xl extrabold count, inner section headings bumped to 15px semibold for clearer scanability.
- Legacy admin app deprecation — migrated admin pages are redirected from the old admin subdomain to their new in-workspace home using the cross-subdomain session, keeping existing bookmarks working during the transition.
- Sidebar Admin entry — the workspace sidebar now exposes an Admin section alongside Settings (Dashboard, Subscription, Audit Log, Storage, Security), making the in-workspace admin pages discoverable. Sensitive sub-pages keep their server-side role gates
- Admin proxy cleanup — the temporary admin catch-all proxy has been removed now that all admin pages live natively in the workspace, eliminating a routing edge case that could ping-pong between the old and new admin surfaces.
v0.018.015April 24, 2026
- Newsroom homepage publication catalog — homepage now emits a Schema.org `ItemList` of the latest 20 published press releases (with descending order hint and total `numberOfItems`). Tells Google + LLM crawlers this URL is a publication index, not a marketing landing
- Section pages get CollectionPage — `/press-releases`, `/our-story`, and `/notice` now ship `CollectionPage` JSON-LD with an inner `ItemList` of the page-of-results. Each section page also gets a real `<title>`, `description`, canonical URL, and Open Graph metadata (was previously just `[section] | [slug]`).
v0.018.014April 24, 2026
- Press release rich structured data — every published press release now ships the full set of NewsArticle metadata Google Rich Results and News surfaces require to qualify for cards (article section, keywords, word count, hero image as a full image object, accessibility flag, copyright year and holder).
- Press release FAQ recognition — when a press release reads as Q&A (question-shaped headings followed by answers), the article automatically qualifies for FAQ rich results in Google Search and is structured for LLM citation, with no editor work required.
- Press release semantic markup — published and updated dates are machine-readable, the hero image declares its dimensions and load priority, and in-body images use lazy-load and async-decode hints for snappier scrolling.
- Press kit organization profile — public press kit pages now expose the organization's leadership, products, primary language, and a brief spoken-summary selector, giving knowledge-graph crawlers a complete identity for the org without a separate About page.
- Profile · Activity and Workspaces — your Activity page (recent audit-log entries across workspaces) and Workspaces page (all workspaces you belong to, with role, job title, and join date) now live in the workspace app. Both pages are self-only; other members' equivalents are not viewable.
v0.018.013April 24, 2026
- Final BI sweep across remaining marketing pages — News, Blog, Contact, Guide, Privacy, Terms, Cookies, and Release Notes hero areas now follow the unified BI pattern: mono purple eyebrow tag, bold large heading, lighter intro copy, and the Purple Light gradient on light heroes (or full-bleed Marcomm Purple on the Blog hero). Old "badge with dot" pill across the marketing site replaced consistently.
- Free workspace storage corrected to 1 GB — pricing comparison table, plan-card feature list, free-plan summary copy across all 14 locales, in-app Storage tab, and the Organization schema default were all on different numbers (100 MB / 5 GB / 100 GB). Now consistently 1 GB everywhere; existing workspaces still on the legacy 100 GB default are migrated down to 1 GB. Paid plans (Pro 5 GB / Team 20 GB / Enterprise custom) unchanged.
- Workspace admin pages — Dashboard, Security, Audit Log, and Storage now live natively inside the workspace instead of redirecting to the standalone admin app. Members and Settings consolidate into the workspace's existing Settings tabs to avoid duplication. Default press release category color also migrated to the official Marcomm purple in both schema default and existing rows.
v0.018.011April 24, 2026
- Pricing page BI alignment — every section now uses the unified eyebrow + bold heading + lighter intro pattern. Hero badge converted to mono purple eyebrow; AI Credits dark section moved to the BI #0d1117 surface with dot grid + center purple glow; Compare table, Refund Policy, and FAQ headlines bumped to 4xl/5xl with consistent purple eyebrows. Closing CTA replaced with the bookend Marcomm Purple full-bleed band (Get Started + Contact Sales).
- Features page BI alignment — hero badge → eyebrow; FAQ section converted to BI pattern; closing CTA replaced with the same bookend Marcomm Purple band as the homepage and pricing. Hero gradient updated to the official Purple Light tint (#F3F0FF).
- Transactional email header — verification, welcome, password reset, password changed, data-export-ready, account-deletion-scheduled / cancelled / completed, and press-release dispatch emails now show the BI wordmark in their purple header (Marcomm 800 weight + AI 600 weight at 55% white). Card radius bumped to 16px and the soft purple shadow now reads as a real Marcomm surface across Gmail, Apple Mail, Outlook, and KakaoTalk.
- Workspace billing — billing now lives natively inside the workspace, with current plan, cancel-at-period-end, and full-refund (when eligible) handled in one place. Non-admin members see a read-only summary and contact list.
v0.018.010April 24, 2026
- Newsroom data layer — every public newsroom route now reads settings through a single cached lookup that dedupes per request and caches across requests at the edge. Admin Save Settings invalidates the cache instantly. Significant time-to-first-byte improvement on warm requests.
v0.018.008April 24, 2026
- Newsroom speed — public newsroom routes now run co-located with the primary database region, eliminating several cross-region round trips per request and cutting time-to-first-byte substantially.
- Site-wide analytics — Marcomm AI homepage and marketing pages now report into the official Marcomm Google Analytics property. Loading is gated by the analytics cookie-consent category, so visitors who decline never receive the analytics script. In-page navigation is tracked correctly.
- Top nav consolidation — public nav simplified to Features · Pricing · Resources · Contact (was Features · Pricing · News · Blog). News and Blog move into the new Resources index.
- Resources hub — new /resources index page lists all out-of-product content: News, Blog, Product Guide, Brand Guide, Release Notes, and the Digitalog Newsroom. Linked from the top nav and footer in all 14 locales.
- Footer reorganized — split into four link columns: Product (Features / Pricing / Release Notes), Resources (News / Blog / Guide), Company (Contact / Brand Guide / Newsroom), and Legal (Terms / Privacy / Cookies / Cookie management). The Marcomm wordmark in the footer brand area now follows the official BI weight split.
v0.018.009April 24, 2026
- New homepage hero — full-bleed Marcomm Purple background, two-column layout (copy on the left, a high-fidelity inline preview of the press release editor on the right). The mockup floats with a slight 3D tilt so it reads as a real product surface, not a generic illustration. Copy and CTAs flip to white-on-purple to match the new BI surface treatment; primary CTA renders as a white pill on purple, secondary is an outlined ghost button. Mobile stacks the columns and recenters the copy.
- Homepage features section — refreshed with the BI section pattern (eyebrow tag in mono purple, larger headline, generous whitespace). Cards now use rounded-2xl corners, a soft purple-tinted icon container, and lift on hover with a subtle purple shadow.
- Sitemap completeness — added /resources, /brand-guide, and /contact to the public sitemap so search engines index the new content hub and brand assets across all 14 locales.
- Homepage Stats section — switched to a deeper #0d1117 surface with a soft purple glow centerpiece, larger 6xl/7xl numerals, and a purple eyebrow tag. The numbers now feel like a tentpole moment, not a footnote.
- Homepage How-It-Works section — three step cards with a solid Marcomm Purple step badge (01 / 02 / 03), rounded-2xl border, and consistent eyebrow + bold heading pattern. Same visual language as the Brand Guide and Features sections.
- Homepage FAQ section — refreshed with the BI eyebrow, bold heading, and lighter intro copy. Background switched to gray-50 to separate from the upcoming purple CTA.
- New homepage closing CTA — bookend Marcomm Purple full-bleed band that mirrors the hero, with two CTAs (Get Started + Contact Sales). Creates a clean visual frame around the page and gives sales a first-class entry point.
v0.018.007April 24, 2026
- Accessibility — public footer headings switched from h4 to h3 (proper sequential heading order), small footer text contrast bumped from gray-400 to gray-600 on light surfaces and from gray-400 to gray-300 on the dark newsroom footer (now passes WCAG AA contrast ratio), mobile menu button gets accessible name (aria-label "Open menu" / "Close menu" + aria-expanded) localized in 14 languages.
v0.018.006April 24, 2026
- Marketing site SEO completion — every public page (landing, pricing, contact, blog, release notes, features, news, guide, brand guide, privacy, terms, cookies) now ships full open graph image, twitter card image, and 14-locale hreflang alternate links. Previously each page-level metadata silently overrode the root layout fields, leaving Google bots and social platforms with no preview image and no language alternates anywhere.
- Internal helper — new `pageMetadata()` builder centralizes the og/twitter/hreflang shape so every page can specify just title + description + path without re-typing the boilerplate (and without dropping inherited fields).
- Admin URL convention — workspace URLs now expose `{slug}.marcomm.work/admin/{feature}` and 307-redirect to the existing admin console with cross-subdomain SSO; the in-app "Open Admin Console" button uses the new local URL so admin links stay inside the workspace mental model.
v0.018.005April 24, 2026
- Search-engine fix — structured data on newsroom homepage, press release detail, and press kit pages is now part of the initial server-rendered HTML, so search bots see it on every crawl regardless of whether they execute scripts
- Sitemap / robots / RSS URLs — public URLs now correctly emit https:// across sitemap, robots, and RSS surfaces. Subdomain newsrooms no longer broadcast http:// URLs to crawlers.
- Members directory filters — Role and Department filter chips added alongside the existing search box. Both chips appear only when there's more than one value to choose from (avoids noise on small workspaces). "Clear filters" link resets to the full list.
- Brand Guide page — public /brand-guide showcases the official Marcomm AI brand identity in nine sections: hero on Marcomm Purple, the wordmark on white, six approved background surfaces, the brand color palette (with click-to-copy hex), the five-step scale, the Inter / Noto Sans KR / JetBrains Mono typography stack with license info, the clear-space rule, six "Don't" misuse examples, the M-initial favicon set, and downloadable assets (SVG / OG image / multi-size favicons). Linked from the public footer Resources section in all 14 locales.
- Permission check consolidation — role checks across the codebase were unified, so future role-model changes apply consistently in one place. Behavior is unchanged.
v0.018.004April 24, 2026
- Press release pages — structured data upgraded with voice/LLM-friendly summary regions, language signal, the full article text for AI search engines, and a logo-bearing organization publisher block
- Open Graph & Twitter Cards — every press release now sets canonical URL, og:image (thumbnail), og:url, og:locale, og:site_name, and a summary_large_image Twitter card so the link unfurls correctly on Slack, LinkedIn, X, KakaoTalk, etc.
- Newsroom homepage schema — Organization gets logo + sameAs entries; WebSite gets inLanguage + publisher; both honor the optional `schemaOrgName` override so legal name and display name can differ
- Lead paragraph speakable target — added a stable `.pr-lead-paragraph` class on the press release lead so voice assistants and LLMs read the right summary
- Profile photos — upload a per-workspace profile photo from your profile page (PNG / JPEG / WebP / GIF, up to 2 MB). Photos appear automatically on the header avatar, members directory cards, your own profile, and any colleague's profile, replacing the initials placeholder. Photos are scoped per workspace, matching the way display names and roles already work. Header refreshes its avatar live when you change yours
v0.018.003April 24, 2026
- Newsroom Analytics — connect a Google Analytics 4 property to your newsroom and pageviews are tracked across initial loads and in-page navigation, with no code changes required
- Newsroom Tag Management — connect a Google Tag Manager container to wire any third-party tag without touching the codebase
- Search Console verification — newsroom settings now accept Google Search Console and Naver site-verification tokens; the verification meta tags work on path-based, subdomain, and custom-domain newsrooms
- Display name override — optionally show a different organization name in structured data than the legal name used internally
- Validation hardening — analytics IDs and verification tokens are validated server-side and pasted meta-tag wrappers are auto-stripped to the bare token
v0.018.002April 24, 2026
- Stronger account-deletion safety — invitations, press releases, comments, email dispatch records, content folders, and AI usage history all survive an account removal cleanly without leaving stale references
- Press release attribution — list and detail views handle the case where the original author's account no longer exists, with a clear "Unknown" fallback
- Account deletion at scale — file purge runs in batches so users with thousands of uploads complete deletion in the background window, with file storage and per-organization usage counters cleaned up consistently
- Internal quality bar — automated regression coverage added for security-critical paths so regressions surface before they ship.
- Settings · Members discoverability — admins can now jump straight from the member-management list to the searchable members directory via a "View directory" link in the section header.
- Brand identity unified — official Marcomm wordmark applied across the app. "Marcomm" carries the heavier weight, "AI" sits as a lighter suffix in the brand purple (or a translucent white when on the purple surface). Surfaces, sizes, and clear-space rules formalized in the design system; mobile browser theme color now reflects the brand purple.
v0.018.001April 24, 2026
- Build pipeline — resolved a prerender edge case so local development builds complete reliably. Production deploys were unaffected.
- Member profile activity — viewing a teammate's profile now lists up to 10 of their published, scheduled, or in-review press releases; click any item to open it. Drafts and rejected releases are intentionally hidden so in-progress work stays private. Status labels follow the viewer's language.
v0.017.004April 23, 2026
- Production error tracking — operational visibility into runtime issues so regressions surface to the team in minutes instead of customer reports (web).
- Uptime health probe — a lightweight health endpoint for external monitors so partner status pages can track availability without touching application data (web).
- Safe account deletion — uploaded files and storage usage are now cleaned up correctly when an account is removed, so quotas stay accurate after a member leaves (web).
- Mobile editor guidance — the press release editor and newsroom builder show a one-time "desktop recommended" prompt on small screens with a "continue anyway" option, so authors know which surfaces work best on which device (web).
- Rich-text editor polish — the link and color pickers were refined for faster inline styling during press release authoring (web).
- Honest theme metadata — an inaccurate dark-mode hint that did not match the actual app theme was removed so the rendered surface matches the advertised theme (web).
- Members directory — a new Members page lists everyone in your workspace as a searchable card grid showing name, role, department, and job title, with a click to open that member's profile (web).
- Teammate profiles — workspace members can now open each other's profile pages. Your own profile renders the editable form with profile, security, and data and privacy tabs, while others render a read-only contact view with no personal-account fields (web).
v0.017.003April 23, 2026
- Account security hardening — protection around sign-in, password reset, and email verification was strengthened across the auth surface (web).
- Environment-aware auth links — password reset and post-login redirects now stay within the environment the visitor started from, so a link generated on the marketing site lands back on the marketing site (web).
- Seamless post-verification sign-in — new members now land directly in onboarding after entering the verification code, with no second sign-in required (web).
- Sanitized blog rendering — admin blog posts pass through an HTML sanitizer before storage so authored content cannot smuggle disallowed markup into the public reading view (web).
- Modern security headers — a refreshed baseline of modern security response headers rolled out across the product so the public surface meets today's defense-in-depth expectations (web).
- Shorter-lived download links — copied or shared download URLs now stop working almost immediately, so a link forwarded outside the workspace cannot be reused later (web).
- Subdomain newsroom homepage — your workspace's subdomain root now serves your organization's public newsroom instead of redirecting visitors to the marketing site (web).
- Three-tab image picker — hero images and press release body images can now be chosen from the organization's library, uploaded directly, or pasted by URL through a single picker modal (web).
- Auth screen polish — disabled-button loading states replace inline spinners on sign-in, sign-up, and verify-email, so the primary action is the only thing that ever shows progress (web).
- Localized press release status — status labels now follow the viewer's language across list, calendar, and kanban views, and dates also respect the viewer's locale (web).
- Public contact page — a new contact page with support, sales, and partnerships channels is linked from the public footer in all 14 supported languages (web).
- Unified support contacts — marketing pages now route to a single canonical support and sales email so visitors always reach the right inbox on the first try (web).
- Subscription summary in workspace settings — workspace settings now shows the current plan summary plus admin-only cancel and refund actions and a link into the admin console. Non-admin members see a read-only summary with admin contacts. The sidebar label was renamed Billing to Subscription across all 14 locales, and plan changes, credits, add-ons, invoices, and coupons were consolidated into the admin console for a clearer split between day-to-day settings and operator tooling (web).
- Public contact accessible to visitors — the contact page is now reachable for signed-out visitors so the footer link works without a sign-in detour, and reserved marketing routes that have no page built yet resolve cleanly instead of bouncing visitors to sign-in (web).
- Brand color consistency — remaining blue accents on data and privacy, subscription action, and transfer ownership cards, and the default press release category color, were migrated to the official Marcomm purple, completing the unified design-system alignment (web).
v0.017.002April 23, 2026
- Auth navigation polish — sign-in and sign-up navigation feels smoother for already-signed-in visitors browsing the marketing site, with no extra round-trips when an active session is detected (web).
- Custom newsroom section headers — custom-layout sections for press releases, stories, press kits, notices, clips, and the media library now show their title and a view-all link, matching the Classic, Magazine, and Editorial styles. Hero, popular list, stats counter, image gallery, and text block sections remain headerless by design (web).
v0.017.001April 23, 2026
- Media library — a new album-style gallery lets newsroom editors create albums, upload photos, add video links, and write per-asset captions for a richer visual archive (web).
- Public media library — every published newsroom now exposes a public album grid and per-album detail view with lightbox and inline video embed, so visitors can browse the brand's visual story (web).
- Custom studio template — a drag-and-drop grid builder lets editors compose a fully customizable newsroom layout instead of choosing only from preset styles (web).
- Eleven section types — the layout builder ships a starter palette of section types covering hero, press releases, stories, press kits, notices, clips, media albums, popular list, stats counter, image gallery, and text block (web).
- Custom layout builder — the builder offers a column grid canvas, a component library, per-section configuration, save and preview actions, undo and redo history, and a handful of layout presets so editors can start from a sensible baseline (web).
- Custom template runtime — the public newsroom reads the saved layout and renders it without a heavy client bundle so visitors get the same lightweight performance regardless of layout complexity (web).
- Built-in styles extended — all three built-in newsroom styles (Classic, Magazine, Editorial) now integrate the media library section with visibility toggle and ordering controls (web).
- Magazine and Editorial polish — the Magazine feed and full-width hero Editorial layout were tuned for typography scale, section spacing, color contrast, and card density (web).
- Newsroom analytics — the admin dashboard now surfaces public newsroom visits, top paths, referrers, country breakdown, and trend charts at a glance (web).
- SEO automation — every newsroom now ships its own sitemap, robots, and feed files, and structured article and organization metadata is emitted on press release, press kit, and layout pages (web).
- Forgot and reset password localized — the forgot-password and reset-password flows are now fully localized so visitors no longer drop into English mid-flow (web).
- Translation sync — the new custom studio strings were added natively across every supported locale, orphan translation keys were pruned in the same pass, and all 14 languages are at full parity (web).
- Settings polish — the custom template card is now active and the edit button routes straight into the custom builder so authors can jump into a custom layout in one click (web).
- Cookie policy refresh — the cookie policy was rewritten as a 12-section document covering legal basis, first-party and third-party cookie tables, named processors, and regional notices for the major jurisdictions Marcomm operates in (web).
- Cookie consent controls — the consent surface now uses category-level accordions for granular consent, and a full cookie management page is reachable from the footer (web).
- Refund policy entry — the FAQ now documents the policy that lets workspaces with no AI credits used and within seven days of purchase request a full refund (web).
- Data subject rights foundation — self-serve endpoints back data export, account deletion with grace period, subscription cancel and refund, sole-owner check, ownership transfer, and AI usage logging for refund eligibility (web).
- Data and privacy tab — a new tab surfaces self-serve data export, account deletion with cancel, and sole-owner warnings linking to ownership transfer (web).
- Subscription self-service — workspace settings now shows real-time refund eligibility, a one-click full-refund action when eligible, and a cancel-at-period-end action (web).
- Ownership transfer UI — workspace settings now lets the workspace owner transfer ownership to any active member through a confirmation modal (web).
- Privacy translation sync — privacy, subscription, and transfer strings ship natively across all 14 locales (web).
- Cookie consent resilience — Save selection and Accept all no longer hang in environments where browser storage writes are blocked. The UI proceeds with an in-memory consent and logs a warning instead of stalling (web).
- AI usage tracking — press release generation across all tiers, the dashboard AI summary, and monitoring sentiment analysis are now logged for refund eligibility and quota visibility (web).
- Background data subject jobs — scheduled background jobs now handle data export packaging and the account deletion lifecycle, including a sole-owner safety re-check before any account is removed (web).
- Privacy transactional emails — data-export-ready notifications and account-deletion notifications are sent on a best-effort basis without blocking the in-app action (web).
- AI credit gating — press release generation now respects the monthly free quota plus any purchased credit batches, draining the oldest batch first (web).
- Real-time AI usage view — workspace settings now show actual monthly AI consumption plus a recent usage history so admins see exactly where credits went (web).
- Email credentials encrypted at rest — outbound email passwords are now encrypted in the database instead of being stored in clear text (web).
- Inline review comments persisted — selection-based review comments now sync across reloads, devices, and reviewers, with an optimistic UI and rollback on error (web).
v0.016.001April 22, 2026
- Profile sub-site launch — a polished personal profile experience goes live, covering personal info, address, account info, locale, and work fields in a single tabbed surface (web).
- Admin sub-site launch — workspace administration goes live with dashboard, members, security, audit log, storage, billing, and settings sections (web).
- Single sign-in across Marcomm — one sign-in now unlocks the marketing site, the profile sub-site, and the admin sub-site so members never sign in twice (web).
- Storage file browser — admins can browse files by category (images, videos, documents, articles, other) with search and bulk delete (web).
- Member management — admins can invite, change roles across the four-tier role system, set expiry dates, and see pending invitations inline (web).
- Audit log overhaul — events are grouped into nine action categories with category filter pills, user and date filters, and full-text search (web).
- Sign-in audit — successful sign-ins are now recorded per workspace for visibility in the audit log (web).
- Press release audit — create, update, delete, submit, approve, reject, and distribute events on press releases are logged for accountability (web).
- Newsroom and press kit audit — story and press kit lifecycle events are logged per workspace alongside press release events (web).
- Expanded profile fields — the user profile now supports nickname, gender, address, mobile and phone numbers, and account activity timestamps (web).
- Google name import — first name and last name are auto-filled from the Google profile on first sign-in when those fields are blank (web).
- Membership fields expanded — workspace memberships now support employee ID and expiry date, and expired members are visually grayed out and blocked from access (web).
- Content library folders — editors can create, rename, and delete nested folders, navigate via breadcrumbs, and reflect folder state in the URL (web).
- Storage quota enforcement — uploads that would exceed the workspace quota are rejected with a clear usage and limit breakdown so members know exactly how much room they need to free up (web).
- Transactional upload safety — file uploads are transactional, so if a database failure follows a storage write, the orphaned file is automatically cleaned up (web).
- Non-Latin filename support — non-ASCII filenames now upload and download reliably across the platform (web).
- Delete integrity — file and folder deletion fails fast on storage errors so per-workspace usage counters stay consistent (web).
- Folder tree cascade delete — deleting a folder now removes all descendants and decrements storage usage in a single transaction (web).
- Smoother post-sign-in routing — a single server-side hop now replaces the previous client round-trip after sign-in, so members land in the workspace faster (web).
- Auth flow cleanup — sign-in, sign-up, password reset, and email verification were refactored with consistent translations across the entire flow (web).
- Launch readiness polish — a pricing translation fix, a cookie banner, and a sweep of auth screen polish all landed together for the launch milestone (web).
- 14-language translations — the admin and profile sub-sites, plus audit categories and the storage file list, ship natively across all 14 supported locales (web).
- Continued API hardening — broader input validation, stricter access checks on member operations, and a tightened content security policy continue to harden the platform (web).
- Cookie policy rewrite — the cookie policy was expanded into a full 12-section document covering first-party and third-party cookie tables, data processor list with HQ country and transfer basis, seven data subject rights, and regional notices for the major jurisdictions Marcomm operates in (web).
- Cookie management UI — the cookie modal now expands per category to show name, provider, purpose, and duration, and offers reject, save selection, and accept all actions, with a dedicated cookie management link in the footer's legal column (web).
v0.015.001April 21, 2026
- Public newsroom rebuild — the public newsroom was rebuilt around a classic editorial design with a two-column layout and paired sections, matching the reference brand presentation (web).
- Three newsroom templates — newsrooms can now choose from Classic, Magazine, and Editorial templates, each with a distinct rhythm for editors and readers (web).
- Live template switching — the template chosen in newsroom settings now drives the live public newsroom style without requiring a republish (web).
- Custom template card — the custom template option is now surfaced in the template chooser alongside the three built-in styles (web).
- Newsroom settings consolidation — seven accordion sections were merged into four sidebar tabs (basic, domain, template, SEO) for a cleaner editing experience (web).
- Hero carousel — newsroom homepages now support an auto-rotating five-slide hero carousel with prev/next arrows, pagination dots, and hover-to-pause (web).
- Header customization — newsroom headers now support a custom background color with auto-contrast text and a left, center, or right header alignment (web).
- Language dropdown — the public newsroom language dropdown shows all 14 locales without an internal scrollbar and uses uniform text sizing with the rest of the navigation (web).
- Expanding search — clicking the search icon now expands to a full-width search input, and pressing Enter navigates to the search results page (web).
- Public list pages — newsrooms now ship dedicated press releases, our story, press kit, and notice list pages with pagination (web).
- Section visibility controls — every section can be toggled on or off and reordered, with the choice persisted server-side and respected across all three template styles (web).
- Empty states — every newsroom section now shows a friendly placeholder when no content has been published yet, instead of being hidden (web).
- Subdomain routing — the public newsroom path rewrites to the correct workspace slug, and every internal link is aware of the canonical base URL (web).
- View newsroom button — the view-newsroom button now appears only on the dashboard tab and is hidden from other newsroom tabs to reduce visual noise (web).
- Press release sub-tabs moved to sidebar — press releases, clips, and library moved from horizontal tabs into the sidebar menu so the working area gets more vertical room (web).
- Custom domain field — the custom domain field now flags that DNS setup is required, while full custom-domain support remains on the roadmap (web).
v0.014.001April 20, 2026
- Settings menu reorder — settings sections were re-grouped (general, members, email, newsroom, AI, storage, billing) so members find the right page on the first try (web).
- Newsroom settings drill-in — newsroom settings now uses a three-level sidebar (main, settings, newsroom) with four sub-pages so editors stay oriented while configuring a long form (web).
- Press release sub-tabs extracted — clips and library moved from horizontal tabs into the sidebar so the working area gets more space (web).
- Newsroom publish toggle preserved — saving newsroom settings now correctly preserves the publish state instead of accidentally unpublishing the site (web).
- Public newsroom URL — every workspace's newsroom is now reachable at the canonical newsroom URL on its own subdomain (web).
- Section ordering persisted — section visibility and ordering set in newsroom settings now persist across reloads (web).
- Sidebar auto-navigate — clicking a parent menu now also navigates to its first child page so members never sit on a blank shell view (web).
- Settings pinned — the settings menu is now pinned to the bottom of the sidebar so it is always reachable regardless of how far the rest of the navigation has scrolled (web).
- Scrollbar hide — main content areas now hide their scrollbars by default for a cleaner reading view, while remaining fully scrollable (web).
v0.013.001April 17, 2026
- Drill-in sidebar — parent menus now drill in and back out, so the sidebar focuses on whatever section the member is working in instead of always showing the full tree (web).
- Page title cleanup — redundant page titles that duplicated the sidebar menu name were removed so the working area starts with content, not a label (web).
- Full i18n audit — remaining hardcoded English strings across the workspace UI were swept and replaced with proper translation lookups (web).
- 14-language translation sync — the new translation surface is now fully populated across every supported locale at full parity (web).
- Email dependency fix — a long-standing peer-dependency warning on the email library was resolved so installs are clean (web).
v0.012.001April 15, 2026
- Comprehensive i18n audit — hundreds of hardcoded English strings across the workspace UI were swept into proper translation lookups so the surface no longer drops into English mid-flow (web).
- Sidebar font unification — main menu and submenu items now share a single, consistent font weight and size for a calmer visual rhythm (web).
- Korean translation top-up — missing Korean translations across the press kit and newsroom page surfaces were filled in for full parity (web).
- Press release form localized — every section, placeholder, and validation message in the press release form is now fully localized (web).
- Monitoring pages localized — dashboard, media analysis, competitor comparison, and social media monitoring pages now read in the visitor's chosen language (web).
- Press CRM localized — contacts, groups, delete confirmations, and form fields in the press CRM are now fully localized (web).
- Security hardening — input validation and access checks across authenticated routes continued to tighten in this release (web).
v0.011.001April 8, 2026
- Header workspace switcher — the workspace switcher moved from the sidebar to the header with a full workspace list, so members swap workspaces without leaving their current view (web).
- Brand refresh — the product is now consistently presented as Marcomm AI across the app and public pages (web).
- Pricing simplified — annual billing options were removed so pricing now offers a single monthly cadence (web).
- Newsroom settings refined — newsroom configuration moved into the settings tab, the workspace slug field was removed in favor of automatic defaults, and the page is leaner overall (web).
- Sidebar tidy-up — the newsroom settings submenu was retired and the monitoring dashboard link was repaired so navigation stays consistent (web).
- Cross-surface session sharing — sign-in sessions are now unified across the marketing site and workspace, so members do not sign in twice (web).
- CSRF protection — request validation on state-changing endpoints was strengthened across the platform (web).
- Workspace update fix — a serialization error on the workspace update path was resolved so changes save reliably (web).
- Duplicate workspace prevention — workspace creation now rejects slug conflicts with a clear message instead of silently appending a suffix (web).
- Content security policy refinements — the content security policy was adjusted to support analytics and cross-surface connectivity without weakening the baseline posture (web).
- Click-feedback animations — every interactive element now ships a small click-feedback animation so members get tactile confirmation that their click registered (web).
- Cross-surface routing — workspace pages no longer redirect to the marketing host when reached from the workspace surface (web).
v0.010.001April 7, 2026
- Workspace subdomains — every workspace now gets its own newsroom subdomain address so each brand has a dedicated public home (web).
- Coupon system — workspaces can now redeem percentage, fixed-amount, and credit coupons with full server-side validation (web).
- Invoice system — billing now exposes an invoice list page and a printable detail view so finance teams can pull receipts on demand (web).
- Credit batches — AI credits are now tracked as monthly and purchased batches with a 12-month expiry, drained oldest first (web).
- Subscription billing — checkout, webhooks, and the customer portal are wired through the payment provider so plan changes settle reliably (web).
- Workspace data isolation — workspace data is now isolated at the database layer to prevent any cross-workspace reads (web).
- Sender-verified email — workspaces can now bring their own sender credentials with a managed-email fallback for distribution (web).
- Sign-in bot protection — sign-in, sign-up, and forgot-password now ship a bot-protection challenge to keep automated abuse off the auth surface (web).
- Stronger password rules — the password rules now disallow whitespace and the inline checklist updates as the visitor types so requirements are clear (web).
- Guide page — a public guide shipped with sections covering the most common questions, illustrated visuals, and full navigation across all supported languages (web).
- Production file storage — newsroom assets now have durable production backing so uploaded files persist reliably (web).
- Code quality sweep — silent error swallowing was eliminated across the codebase, and a global pointer-cursor rule ensures every clickable element invites a click (web).
- Slug-based routing — workspace URLs throughout the app now use a clean slug-based form for clearer navigation and shareable links (web).
v0.009.001April 7, 2026
- Workspace pages redesigned — every workspace page was refreshed in a compact, modern visual style for a calmer working experience (web).
- Brand color unified — the brand purple is now used consistently across every interactive surface in the product (web).
- Native translations — a long list of workspace pages migrated from hardcoded English to native per-locale copy across all 14 supported languages (web).
- Newsroom defaults — placeholder content was removed from new newsrooms and the public URL action is now always visible from the workspace (web).
- Edge configuration — secure connections and DNS for the production domain are now fully configured at the edge (web).
- SEO, AEO, and GEO — structured data, AI-search index files, and crawler-discoverable metadata are now wired across the public pages (web).
- Security headers baseline — a baseline of modern security headers shipped along with a branded favicon for the public surface (web).
- Google sign-in across environments — Google sign-in is now configured for every supported environment so members can authenticate everywhere consistently (web).
- Language save fix — a regression that prevented the language preference from saving in workspace settings was resolved (web).
v0.008.003April 6, 2026
- Email template manager — editors can now create, edit, and reuse email templates, browse them as a card or list, search by name, and load any template directly into the email body (web).
- Profile and security tabs — the profile page now ships profile editing, password change, Google connection status, and active session information across two tabs (web).
- File upload — the workspace now backs file uploads with production storage with a per-file size limit large enough for typical media assets (web).
- Newsroom data models — the workspace now ships full create, read, update, and delete flows for stories, notices, and clips (web).
v0.008.002April 6, 2026
- AI press release writing — production AI integration with multiple model tiers now powers press release draft generation directly inside the editor (web).
- Press release editor — the full nine-section press release editor lands with existing data preloaded for in-progress drafts (web).
- Inline review comments — reviewers can now select text, leave a comment that highlights the selection in yellow, and mark it resolved when it turns green (web).
- Dashboard rebuild — the dashboard now opens with stat cards, an activity timeline, an AI credit progress bar, and a row of quick actions (web).
- Notification center — the bell icon now opens a notification dropdown with auto-refresh, and a dedicated notification page offers category filtering for deeper triage (web).
v0.008.001April 6, 2026
- Production domain live — the product now lives on its production domain with secure connections enabled end-to-end (web).
- Verified sender — outbound email is now sent from a verified sender so transactional messages reach inboxes reliably (web).
- Password reset reliability — password reset email delivery is now reliable, and the verification step on first sign-in is automatic (web).
- Translation sync — the public layout, landing, and onboarding strings now ship native translations across the supported locale set (web).
v0.007.001April 3, 2026
- Full app rebuild — the workspace was rebuilt with a collapsible sidebar, a workspace switcher, and a press releases area offering list, calendar, and kanban views (web).
- Press CRM — the press CRM ships a journalist list, a tabbed contact detail, and full group management for ongoing outreach (web).
- Content hub — a file library and a five-tab press kit builder let teams assemble press kits from a single hub (web).
- Online newsroom — the newsroom area ships a six-tab management view, a public page, and a template system so teams can publish in minutes (web).
- Monitoring suite — monitoring ships a dashboard, media analysis, competitor comparison, and social media views in one place (web).
- Workspace management — workspace administration ships a three-column kanban for releases and a six-tab settings view (web).
- Press release detail — the press release detail page now bundles approval workflow, email distribution, and scheduling into a single working surface (web).
v0.006.001April 2, 2026
- Market intelligence — a new market intelligence view pairs stock prices with related news headlines so PR teams can read price moves in narrative context (web).
- Stock detail page — the stock detail page offers one-day, one-week, and one-month ranges, click-to-select interactions, topic filters, and article search, sort, and pagination (web).
- Public SEO foundations — structured data, sitemap, and robots files are now wired across the public surface so search engines and AI crawlers can index the product cleanly (web).
- Locale-aware URLs — public pages now route by locale in the URL, so visitors can share a link in any supported language (web).
- Pricing plans live — free, pro, team, and enterprise plans are now live alongside AI credit packages, so workspaces can pick the tier that fits their volume (web).
v0.005.001April 1, 2026
- Homepage redesign — the marketing homepage was redesigned around a hero, six feature cards, social-proof stats, testimonials, and an FAQ accordion (web).
- Seven new public pages — the marketing site shipped seven new pages covering features, pricing, news, blog, release notes, terms of service, and privacy policy (web).
- Header and footer refresh — every public page now shares a refreshed header and footer with Marcomm branding and a language picker (web).
- Legal foundations — the public terms and privacy pages now reflect the major privacy regimes the product operates under, with the appropriate jurisdiction stated for disputes (web).
v0.004.001March 28, 2026
- Transactional email — workspaces now receive verification, welcome, and password reset and change messages so account events feel timely and trustworthy (web).
- Email verification — sign-up flows now confirm email ownership through a short numeric code with an auto-submit field and a cooldown that prevents request spam (web).
- Enhanced sign-up — the sign-up form now splits given and family names, enforces clear password rules, and checks email availability as the visitor types (web).
- Fourteen-language interface — the product interface now ships in fourteen languages so teams can work in their native tongue from day one (web).
v0.003.001March 15, 2026
- AI press release writing — teams can now generate a complete press release draft from a brief so the first version arrives in minutes rather than hours (web).
- News monitoring — workspaces can now track keywords across the news landscape and surface mentions in a single feed for daily review (web).
- Press kit builder — teams can now assemble a digital press kit and share it as a single link so journalists reach every asset in one click (web).
v0.002.001March 8, 2026
- Account sign-in — visitors can now create an account with email and password or continue with a social login so onboarding fits any preference (web).
- Workspace system — teams can now belong to multiple workspaces and switch between them so agencies and brands can keep their work cleanly separated (web).
- Rich text editor — the press release editor now offers a formatting toolbar and inline media so writers can shape stories without leaving the canvas (web).
v0.001.001March 1, 2026
- Platform launch — Marcomm entered public beta so communications teams can sign up and start running their press operations end to end (web).
- Core feature set — the first release covers press releases, a media contact CRM, and email distribution so teams have the essentials in one place (web).
- Dashboard and analytics — the home dashboard ships an activity feed, key metrics, and performance insights so leaders can read program health at a glance (web).
- Team collaboration — approval workflows let teams review and publish press releases together so quality stays high as volume grows (web).