Change Notes

Public release tracker focused on shipped website capabilities and user-facing outcomes.

Current: v2.3.64 Released 2026-02-27
/search gthencchanges ?shortcuts
Fine-grained tags (111)

v2.3.64 2026-02-27 opportunitieseventssamanalyticsux

Opportunities now includes full SAM feed mirror + resilient chart interactivity

Expanded `/opportunities` to include broad SAM candidate feed data (not only event-cached notices) and restored clickable bar filtering across fallback render paths.

Why it matters: You can analyze a much wider SAM opportunity set immediately and still use click-driven filtering even when chart runtime falls back.

Added

  • Added ingestion of `events-candidates-sam-opportunities.json` directly into `/opportunities` data model.
  • Added KPI visibility for SAM global feed row volume alongside event-linked SAM cache metrics.

Fixed

  • Restored full bar-click filtering behavior for fallback chart rendering (click + keyboard interactions).

Changed

  • Updated page framing from event-only SAM mirror to combined SAM feed + event enrichment intelligence surface.
v2.3.63 2026-02-27 opportunitiesanalyticsuxvisualizationevents

Opportunities visuals streamlined for signal density

Removed underperforming/redundant charts from `/opportunities` to keep the analytics surface focused on high-signal views that support fast exploration.

Why it matters: You get a cleaner cockpit with fewer dead or overlapping visuals and faster scan-to-insight behavior.

Changed

  • Removed `Gem score vs due pressure` chart from `/opportunities`.
  • Removed `Due timeline` chart to avoid overlap with urgency distribution.

Improved

  • Reduced visual redundancy so remaining charts carry clearer analytical intent.
v2.3.62 2026-02-27 opportunitiesanalyticsvisualizationuxevents

Opportunities upgraded into interactive analytics cockpit

Expanded `/opportunities` with richer interactive visual analytics using ECharts: clickable agency/NAICS distributions, due-pressure scatter analysis, and upgraded timeline rendering.

Why it matters: You can now explore patterns by clicking charts directly and instantly pivot the table for deeper analysis.

Added

  • Added interactive `Gem score vs due pressure` scatter plot (bubble size by weight) with click-to-focus behavior.
  • Added chart click interactions on Top Agencies and Top NAICS to pivot table focus instantly.

Changed

  • Converted remaining opportunities visuals from static bars to ECharts-powered interactive charts.
  • Upgraded due timeline from static bars to smoothed trend visualization for faster temporal interpretation.

Improved

  • Improved visual analysis flow: each chart now acts as an exploration control surface, not just a display.
v2.3.61 2026-02-27 opportunitieseventsuxtableanalytics

Opportunity Table upgraded with release-age, sorting, and pagination controls

Upgraded the opportunities table into a full interactive data grid with per-column sorting, page-size controls, pager navigation, and a new Days Since Release signal for faster triage.

Why it matters: You can now scan large opportunity sets without scroll fatigue and sort exactly by the field you care about.

Added

  • Added `Days Since Release` column to Opportunity Table (derived from posted date).
  • Added table pagination controls with first/prev/next/last navigation and rows-per-page selector.

Changed

  • Renamed section heading from `Opportunity mirror table` to `Opportunity Table`.
  • Converted table headers to interactive sort controls (numeric + text-aware defaults).

Improved

  • Improved table UX polish for desktop/mobile paging controls and active sort-state visibility.
v2.3.60 2026-02-27 opportunitieseventsuxdesign-systemplatform

Opportunity Intelligence UI aligned to Events design language

Restructured Opportunity Intelligence into a tighter scan-first shell with consistent controls, denser visual cards, and improved table readability matching the Events polish baseline.

Why it matters: Opportunity triage now feels like the Events workflow: compact, consistent, and much faster to scan.

Changed

  • Converted top sections to shared control-shell styling for design consistency with `/events`.
  • Restructured filter area into a unified scan-first control shell with grouped fields and dedicated action row.
  • Reflowed visualization cards to a denser 3-column layout with responsive spans for gem/timeline focus cards.

Improved

  • Improved typography, spacing, and hierarchy across KPI cards, filter controls, and analytics panels.
  • Added zebra/hover treatment for table rows and tighter numeric/readability styling for scan speed.
v2.3.59 2026-02-27 eventsopportunitiessamuxplatformci

Opportunity Intelligence mirror launched with rendering + CI hardening

Shipped a new `/opportunities` intelligence surface with full filtering, ranked gem detection, and visual analytics across cached SAM opportunity data; then patched rendering and deploy blockers.

Why it matters: You can now scan and triage opportunities directly from one page, while CI/deploy reliability was tightened to keep dev pages moving.

Added

  • Added `/opportunities` page that deduplicates cached SAM intelligence across enriched events into one mirror table.
  • Added filters/sorting for search, notice type, branch, due windows, minimum weight, focus-only mode, and gem ranking.
  • Added visual analytics blocks: gem picks, urgency distribution, notice mix, top agencies, top NAICS, and due timeline.

Changed

  • Added Opportunities to desktop/mobile navigation and global keyboard shortcuts (`g` then `o`).
  • Trimmed opportunity page header copy to remove the β€œOpen this page to answer...” sentence per request.

Improved

  • Adjusted strict linkcheck policy to reduce false deploy blocks (moved `xponential.org` to warn tier; accepted HTTP 202 in strict checks).

Fixed

  • Fixed opportunities client dataset embedding so table/charts/gem list render instead of showing empty sections.
v2.3.58 2026-02-24 eventsuxcalendarmapicons

Map popup calendar links now show icons only

Updated calendar links in event map popups to icon-only actions (🍎 / πŸ—“οΈ / πŸ“˜) while preserving accessibility labels/tooltips.

Why it matters: Calendar popup actions are cleaner and more compact, matching your icon-first preference without losing clarity.

Changed

  • Removed text labels (`iOS (.ics)`, `Google`, `Outlook (.ics)`) from map popup calendar links and kept only icons.

Improved

  • Added ARIA labels and title attributes so icon-only links remain accessible and self-describing on hover.
v2.3.57 2026-02-24 eventsuxcalendarlegendtopics

Tracked event legend now shows topic-coded icon key inline

Updated calendar legend to show `Tracked Event [ AI | Software | Cloud | Cyber ]` with icons in a single consolidated key.

Why it matters: Legend now reads exactly as an at-a-glance topic key and better matches the icon-forward calendar action style.

Changed

  • Replaced separate topic legend chips with one consolidated tracked-event key: `Tracked Event [ πŸ€– AI | 🧩 Software | ☁️ Cloud | πŸ›‘οΈ Cyber ]`.

Improved

  • Kept hover explanation + accessibility labels on tracked legend key while aligning label style to icon-first calendar actions.
v2.3.56 2026-02-24 eventsuxcalendarlegendclarity

Tracked event legend key now includes hover guidance

Added a hover explanation on the `Tracked event` calendar legend chip, mirroring the attending-key interaction style.

Why it matters: Users can quickly understand that tracked events are monitored feed items and not necessarily attended unless explicitly marked.

Added

  • Added hover copy on the `Tracked event` key: β€œTracked event from monitored sources. Not marked as attending unless starred.”

Changed

  • Applied title/ARIA fallback text to the tracked legend key for accessibility parity with the attending key.
v2.3.55 2026-02-24 eventsuxcalendarintegrationlabels

Events calendar actions now include iOS, Google, and Outlook with clearer labels

Updated event calendar action labels to `Calendar: iOS / Google / Outlook` with icon-marked options and explicit `.ics` cues for iOS/Outlook.

Why it matters: Calendar actions are now easier to understand at a glance and better aligned to device-specific intent (especially iOS + Outlook `.ics`).

Added

  • Added iOS calendar action (`🍎 iOS (.ics)`) alongside Google and Outlook in event cards and details.
  • Added iOS calendar action in map popup calendar group for parity across list/map surfaces.

Changed

  • Updated calendar group label to `Calendar:` and standardized icon-led labels (`🍎`, `πŸ—“οΈ`, `πŸ“˜`).
  • Clarified Outlook and iOS actions with explicit `.ics` label suffixes.
v2.3.54 2026-02-24 eventsuxcalendarlegendattending

Attending legend key now includes a connect note on hover

Added a hover message on the calendar `Attending` legend chip to explicitly signal you will be there and welcome connection.

Why it matters: The attending marker now carries clear social intent for anyone scanning the calendar legend.

Added

  • Added hover copy on the `Attending` legend key: β€œI’ll be there and would love to connect.”

Changed

  • Introduced a styled legend-tooltip pattern (`data-tooltip`) to keep hover behavior visually consistent with calendar detail surfaces.

Improved

  • Added title/ARIA text fallback for accessibility and non-custom-tooltip contexts.
v2.3.53 2026-02-24 eventsuxfilterssignalcalendar

Events status facet now auto-hides when all events share the same status

When all visible feed entries are effectively Upcoming, the status designation/facet is suppressed to reduce noise.

Why it matters: You no longer see a pointless all-Upcoming status filter or repetitive status labels when they add no decision value.

Added

  • Added status-facet mode detection that checks unique status values across event cards.

Changed

  • Auto-hides the status filter control when all events share one status and clears stale status filter state.
  • Event kicker metadata now omits status in single-status mode (`Branch Β· Type`).
  • Calendar hover detail metadata now omits status when status facet mode is disabled.
v2.3.52 2026-02-24 eventsuxcalendarnavigationaccessibility

Events calendar bars now show a styled hover detail card

Calendar bars now show a custom hover card with full event name plus key metadata.

Why it matters: You can read full event names and key context without leaving the month view or guessing from truncated labels.

Added

  • Added a styled hover detail card for calendar bars with full title, date range, and branch/type/status context.

Changed

  • Calendar bars now render truncation inside a dedicated label span while keeping overflow visible for hover detail cards.

Improved

  • Added ARIA labels on calendar bars so screen readers get equivalent detail context.
v2.3.51 2026-02-24 eventsuxcalendarnavigationworkflow

Events list now jumps directly to the matching calendar month/event

Added a per-event list action that jumps the calendar to that event month, scrolls to the calendar section, and briefly highlights the matching calendar bar.

Why it matters: You can move from list triage to month context in one click without manually paging the calendar.

Added

  • Added an `In Calendar` action on each event card in the list.

Changed

  • Clicking `In Calendar` now sets the calendar to the event's month and scrolls directly to Calendar View.

Improved

  • Added temporary focus highlighting on the matching calendar bar so the selected event is easy to spot in dense months.
v2.3.50 2026-02-24 eventsuxcalendarattendingvisuals

Events calendar reverted to uniform event colors with attendance-only highlighting

Removed topic-based color tones from calendar bars while keeping topic icons, and retained color emphasis only for attended events.

Why it matters: The calendar now reads cleaner with one default event color; your attended events remain visually distinct, and topic context still shows via icons.

Changed

  • Removed topic-tone bar classes so all non-attending calendar events render in the same baseline color.
  • Kept topic icon labeling (AI/Software/Cloud/Cyber) in event bars and legend for lightweight semantic cues.

Improved

  • Increased visual focus on attendance state by keeping color-coding exclusive to attended events.
v2.3.49 2026-02-24 eventsuxcalendartopicsattending

Events calendar day-height stabilization, topic coding, and SOF Week attendance tag

Stabilized day-cell height for clearer month scanning, added lightweight topic icon/color coding for primary themes, and marked SOF Week as attending.

Why it matters: Calendar stays readable in dense months, AI/software/cloud/cyber priorities are easier to spot at a glance, and personal attendance now appears directly in calendar bars.

Added

  • Added topic legend cues for primary event themes (AI, Software, Cloud, Cyber).

Changed

  • Calendar bars now derive and display a primary topic icon with matching tone classes for minor at-a-glance coding.
  • Marked `radar-sofweek-2026` as attended via `attendingEventIds` so SOF Week is visibly flagged.

Improved

  • Raised calendar day-cell minimum height to keep month rows visually stable and easier to scan.
v2.3.48 2026-02-24 eventsuxcalendarcssbugfix

Events calendar rendering fixed to preserve traditional month-grid layout

Fixed calendar styling scope so dynamically rendered week/day grid rows and spanning bars keep their intended month layout instead of collapsing into stacked text.

Why it matters: Calendar now renders as a recognizable traditional month view with clear weekday columns, day cells, and readable multi-day bars.

Changed

  • Promoted calendar CSS selectors to global scope for JS-generated calendar nodes (`weekdays`, `days`, `bars`, and bar states).
  • Applied matching global mobile overrides so compact calendar typography and spacing still hold on small screens.

Improved

  • Improved calendar readability and month-grid fidelity for high-event-density months.

Fixed

  • Resolved scoped-style mismatch causing calendar rows and bars to render like unstyled stacked text.
v2.3.47 2026-02-24 eventsuxcalendarplanningattending

Events month calendar added with spanning bars and attending highlights

Added a themed month-by-month calendar view with full month day grids and event bars that span across every day of each event duration.

Why it matters: You can now scan event timing as a true calendar, navigate month to month, and visually distinguish attended events for future reusable personal calendars.

Added

  • Added a new `Calendar View` section with Prev/Next/This month controls and themed week/day rendering.
  • Added event bars that stretch across every day of an event (including multi-day spans across week boundaries).
  • Added attended-event highlighting via code-managed `attendingEventIds` for distinct calendar enumeration and future reuse.

Changed

  • Calendar data now derives from filtered event results, so the month view stays in sync with active list filters.
  • Added event card data attributes (`data-end-date`, `data-attending`) to support reusable calendar rendering pipelines.
v2.3.46 2026-02-24 eventsuxmaplocalstoragelayout

Events map pinning: above/below list with saved preference

Replaced the map hide toggle with a map placement pin control that moves the map above or below the event list and persists preference in localStorage.

Why it matters: Users can keep map and list both visible while choosing preferred scan order; default remains map below list and preference persists per browser.

Changed

  • Replaced `Hide map` with a `Pin map above/below list` toggle button in the control shell.
  • Added persistent map placement preference (`adamboas.events.mapPin.v1`) with default `below`.
  • Updated render logic to reposition the map section above or below the list without hiding either section.
v2.3.45 2026-02-24 eventsuxlayoutcontrolsdensity

Events control shell compacted with aggressive default collapse

Reduced the vertical footprint of the DoW Events Intelligence header by collapsing overview chips and quick filters into a closed panel by default.

Why it matters: The page now lands on search/results faster with significantly less top-of-page height while keeping all controls one click away.

Changed

  • Collapsed summary chips and quick topic/window controls under a default-closed `Overview + quick filters` panel.
  • Reduced control shell spacing/padding and tightened title/toolbar density to cut initial vertical space.
  • Kept search and advanced filters immediately available while reducing non-critical content above the fold.
v2.3.44 2026-02-24 eventsuxbadgeslocalstoragerecency

Events recency state: New is view-based, Fresh is add-window based

Switched event recency badges to persistent local state so `New` only appears for events you have not seen yet, while `Fresh` tracks newly discovered events for a short window.

Why it matters: New badges now clear permanently after first view, and Fresh appears only for events first discovered in your browser within the last 14 days.

Changed

  • Replaced simple seen-id storage with a persistent per-event localStorage state object (`firstDetectedAt`, `firstSeenAt`, `lastSeenAt`).
  • Updated `New` badge logic to display only for currently visible events that have never been seen before on this browser.
  • Updated `Fresh` badge logic to show only when an event is newly discovered and within a 14-day freshness window.
v2.3.43 2026-02-24 eventsuxlabelscalendaroutlookgoogle

Events action labels clarified + calendar controls grouped

Renamed event CTA labels for clarity and grouped Google/Outlook calendar actions into a single intuitive control in cards and map popups.

Why it matters: Event actions are now clearer at a glance (`Event Link`) and calendar options feel like one coherent action instead of separate unrelated buttons.

Changed

  • Renamed card and map link CTA text from generic `Link` to `Event Link`.
  • Grouped Google + Outlook calendar actions under one segmented `Calendar` control in event cards.
  • Grouped calendar actions in map popups and consolidated detail-view calendar links into a single `Add to calendar` row.
v2.3.42 2026-02-24 eventsuxsearchfiltersmap

Events page flow streamlined: search + list first, map moved below

Reordered the DoW Events page so users land on full-text search and the event list immediately, with advanced filters collapsed and the map positioned after the list.

Why it matters: You can now open `/events/` and immediately scan/search the list without scrolling past the map; advanced controls remain available under More filters.

Changed

  • Moved the list section above the map section so search and results are adjacent at page entry.
  • Promoted full-text search to always-visible in the control shell.
  • Collapsed advanced controls under `More filters` to reduce top-of-page clutter.
v2.3.41 2026-02-24 eventscalendaroutlookicsux

Events calendar export expanded to Outlook (.ics)

Added Outlook-compatible ICS downloads for each event alongside existing Google Calendar links across cards, event details, and map popups.

Why it matters: DoW events can now be added from the page into both Google Calendar and Outlook workflows without manual re-entry.

Added

  • Added per-event Outlook (.ics) download links in event card actions and verified-links detail sections.
  • Added Outlook (.ics) actions in map popups for parity with list view event controls.

Changed

  • Relabeled the existing card calendar button as `Google` for clearer provider distinction.
v2.3.40 2026-02-22 footernavigationuxlayout

Footer link order rationalized

Reordered footer utility links to put internal site navigation first, legal next, and external/contact links last.

Why it matters: Footer scanning is now more intuitive and consistent: sitemap and site utilities appear before outbound links.

Changed

  • Reordered footer links to: Sitemap, RSS, Changes, License, Email, GitHub, LinkedIn.
v2.3.39 2026-02-22 sitemaplayoutuxnavigation

Sitemap core/utility two-column restore

Restored the sitemap top box to the preferred two-column structure with Core on the left and Utility on the right.

Why it matters: Sitemap keeps the improved overall layout while matching the previously preferred Core/Utility scan pattern.

Changed

  • Restored two-column sitemap structure inside the top box (`Core` + `Utility`).
v2.3.38 2026-02-22 sitemapwritingpdflayoutux

Sitemap layout alignment + PDF-link consolidation

Aligned the sitemap to the site’s standard single-column layout, removed the separate published-PDF page, and folded PDF links directly into the Published Writing list.

Why it matters: Sitemap now matches the established visual system and avoids overflow, while published writing pages expose direct PDF access in one consolidated list.

Changed

  • Reworked `/sitemap/` to a single-column structure with standard card/control-shell spacing and heading treatment.
  • Renamed section heading to `Published Writing` and moved PDF access into each writing entry.

Fixed

  • Fixed long-title overflow in sitemap writing entries via safer wrapping behavior.

Improved

  • Removed the standalone `/pdfs/` route to consolidate published writing navigation in one place.
v2.3.37 2026-02-22 navigationsitemapwritingpdfuxplatform

Human sitemap + published PDF index

Added a human-readable sitemap page, linked it from the footer, and added a dedicated published-PDF index page discoverable from the sitemap.

Why it matters: Visitors can now find a single navigable site map and quickly access a clean list of all published PDFs in one place.

Added

  • Added `/sitemap/` as a human-readable site map with core pages, utility links, and published writing entries.
  • Added `/pdfs/` page listing all published PDFs with direct PDF links plus corresponding page links.

Changed

  • Updated global footer utility links to include `Sitemap`.
v2.3.36 2026-02-21 writingmemospipelinecireliabilityplatform

Memo pipeline upgraded to LaTeX-first artifact workflow

Moved memos to a deterministic LaTeX source pipeline with CI-built PDF/HTML/manifest artifacts and site-side verification gates, aligned with paper pipeline quality controls.

Why it matters: Memo rendering now follows the same reproducible build discipline as papers, reducing format drift and making sync validation deterministic across Whitepaper and site repos.

Added

  • Added Whitepaper memo artifact pipeline (`build-memos.yml`) with PDF/HTML/manifest outputs and metadata validation from `MEMO.yml`.
  • Added shared memo LaTeX preamble (`tex/memo_preamble.tex`) and memo source directories under `memos/<slug>/tex/memo.tex`.
  • Added site-side memo artifact verification (`scripts/verify-memos.mjs`) and CI gates (`npm run lint:memos`) in build/deploy workflows.

Changed

  • Updated `sync-whitepaper` workflow to ingest memo artifacts from Whitepaper `build-memos` runs instead of relying on ad-hoc local PDF generation.
  • Updated writing detail rendering to prefer generated memo HTML fragments (`src/generated/memos/*`) for published memos.

Improved

  • Introduced memo metadata mirror sync checks so `writing/memos/*.md` frontmatter stays aligned with `memos/*/MEMO.yml`.
v2.3.35 2026-02-20 cilinkcheckeventsreliability

CI reliability: move unstable AUSA links to warn-tier checks

Updated linkcheck policy classification so `ausa.org` links are checked in warn-tier mode instead of strict blocking mode.

Why it matters: Intermittent upstream AUSA connection resets no longer break blocking CI gates, while warn artifacts still retain visibility for remediation and verification.

Changed

  • Classified `ausa.org` URLs into warn-tier policy handling during linkcheck preparation.
  • Removed transient AUSA transport failures from strict blocking gates while preserving non-blocking diagnostics.
v2.3.34 2026-02-20 cilinkcheckeventscalendarreliability

CI reliability: move Google Calendar template links out of strict blocking checks

Updated linkcheck policy classification so generated Google Calendar template URLs run in non-blocking warn-tier checks instead of strict blocking checks.

Why it matters: Deploy and build workflows stay green more consistently while still preserving visibility into Calendar-link health through warn artifacts.

Changed

  • Classified `calendar.google.com` URLs into warn-tier policy handling during linkcheck preparation.
  • Removed calendar-template URL volatility from strict blocking gates while retaining non-blocking diagnostics.
v2.3.33 2026-02-20 eventswritingchangesuxfiltersconsistency

Events quick-scan windows + unified control-shell alignment

Added timeline quick filters (Next 30d/90d/180d), introduced compact confidence-plus-source badges on event cards, and aligned control-shell rhythm across Events/Writing/Changes.

Why it matters: Event triage is now faster by narrowing to near-term windows in one tap, trust context is easier to parse at a glance, and top control surfaces feel more consistent across core list pages.

Added

  • Added quick timeline chips on `/events/`: `Next 30d`, `Next 90d`, `Next 180d`, with URL-persisted state.
  • Added compact event-card badges combining source confidence and source type (`High Β· Official`, etc.).

Changed

  • Aligned control-shell styling hooks across `/events/`, `/writing/`, and `/changes/` for tighter spacing rhythm and mobile wrap consistency.
v2.3.32 2026-02-20 changesuxaccessibilityperformancenavigation

Changes UX sweep: sticky mini filters, accessibility polish, and idle prefetch

Upgraded the Change Notes flow with a sticky compact filter row, stronger focus visibility, reduced-motion safeguards, and smoother list transitions.

Why it matters: Filtering/scanning long release history now stays fast during scroll, keyboard focus is easier to track, and transitions/navigation feel quicker without extra visual noise.

Added

  • Added a sticky mini filter row on scroll with compact search, topic-group toggles, and one-click reset.
  • Added skeleton loading states for filter and pagination transitions to improve perceived responsiveness.

Improved

  • Improved keyboard focus consistency with stronger visible rings across interactive controls.
  • Added reduced-motion handling so transitions/animations respect user motion preferences.
  • Tightened low-emphasis contrast on chips/meta text for better readability.
  • Added idle-time route/page prefetching for likely next navigation targets.
v2.3.31 2026-02-19 uxeventscopyconsistency

Header title-case consistency pass

Standardized key UI section headers to Title Case across Events and supporting pages.

Why it matters: Interface labels read cleaner and more consistent, including β€œGeographic View” and related section titles.

Changed

  • Updated β€œGeographic view” to β€œGeographic View” on `/events/`.
  • Applied Title Case to related section headings on `/events/sources/` and `/404/` for consistency.
v2.3.30 2026-02-19 cilinkcheckpapersbuild-fix

Build-failure hotfix: paper-manifest integrity + linkcheck suppression

Restored generated paper HTML to match manifest hashes and moved a known legacy WEF citation URL out of blocking/warn checks.

Why it matters: CI paper verification is green again, and linkcheck avoids failing on a known unstable legacy citation while still surfacing actionable stale-link suggestions.

Fixed

  • Restored `agentic-force-creation` generated HTML/raw artifacts to match `manifest.sha256` expectations used by `lint:papers`.
  • Added targeted ignore rule for legacy WEF citation URL in linkcheck policy classification to prevent recurring noise during CI runs.
v2.3.29 2026-02-19 eventsuxresponsivelayout

Events list header responsiveness polish

Updated the events-list heading/sort control layout so β€œUpcoming Events” stays one line on larger viewports and stacks cleanly on smaller screens.

Why it matters: Desktop keeps a compact one-line title + sort control row, while mobile/small screens place the dropdown on the next line for cleaner readability.

Changed

  • Renamed heading to β€œUpcoming Events” and applied nowrap behavior for larger viewports.
  • Adjusted list-header flex layout to stack on smaller screens and keep one-row alignment on larger screens.
v2.3.28 2026-02-19 cideploytestinglinkcheckchangesux

Pre-deploy quality gates + linkcheck reliability repair

Expanded CI/deploy quality gates with smoke/overflow/a11y regression coverage and tightened linkcheck signal quality.

Why it matters: Deployments are now blocked behind practical route-level and accessibility checks, while stale/noisy linkcheck findings are reduced and better surfaced as artifacts.

Added

  • Added core-route smoke Playwright suite (`tests/smoke.spec.ts`) and integrated it with overflow + a11y in CI/deploy gates.
  • Added topic-level linkcheck/test artifact uploads for easier triage from GitHub Actions runs.

Changed

  • Build and deploy workflows now run practical regression gates before deployment artifacts are published.
  • Events source page now supports `displayUrl` so public references can remain stable while crawler endpoints stay internal.

Fixed

  • Updated known stale links (AUSA events URL and WEF Amodei citation canonical path) to reduce recurring linkcheck noise.
  • Updated SAM API public reference links to stable Open.GSA documentation in user-facing content.
v2.3.27 2026-02-19 changesuxsearchgroupingrelease-tracker

Change Notes scale pass: topic groups + fuzzy search

Added high-level topic grouping and fuzzy search matching to keep Change Notes usable as release count grows.

Why it matters: You can now filter by broad groups first and use tolerant search matching, reducing scanning load across long release histories.

Added

  • Added topic-group filters (Writing, Events, UX, Platform, Other) with release counts to quickly narrow scope.
  • Moved detailed tag pills under a collapsible β€œFine-grained tags” section to reduce filter-bar clutter.

Improved

  • Enhanced Change Notes search with fuzzy token matching (subsequence support) for typo-tolerant lookups.
v2.3.26 2026-02-19 writingmobiledesktopux

Read-progress split restored by viewport

Restored original desktop in-bar read-progress behavior while keeping the sticky mobile progress row.

Why it matters: Desktop now shows only the action-row read chip (no right-rail duplicate), while mobile keeps the persistent sticky read indicator.

Fixed

  • Constrained `.writing-mobile-progress` to mobile breakpoints only so it no longer appears on desktop layouts.

Changed

  • Preserved desktop read progress as the original action-bar button-style chip, with sticky mobile row reserved for small screens.
v2.3.25 2026-02-19 writingmobileuxoverflow

URL overflow hardening on writing detail pages

Hardened writing content link wrapping so long URLs no longer force horizontal overflow on mobile.

Why it matters: Long source URLs now wrap safely within the content column, preserving clean mobile reading width on pages like ACP-RA.

Fixed

  • Applied robust link wrapping (`overflow-wrap:anywhere` + `word-break:break-word`) to writing content anchors to prevent long URL spillover.

Improved

  • Extended mobile overflow regression coverage to include `/writing/acp-ra/` so long-link edge cases stay protected.
v2.3.24 2026-02-19 writingmobileuxreadability

Mobile-visible read progress chip

Adjusted writing detail progress display so read percentage remains visible on mobile without horizontal scrolling.

Why it matters: On phones, a dedicated read-progress chip now appears beside the back link while desktop keeps the inline action-row version.

Changed

  • Added a mobile-only progress chip in the writing action bar and kept desktop progress chip in the action controls group.
  • Updated progress updater to sync all progress-label instances on the page.
v2.3.23 2026-02-19 paginationwritingchangeseventsux

Pagination controls expanded with First/Last

Extended paginated list controls to include First and Last actions across Writing, Change Notes, and Events.

Why it matters: Navigation across long result sets is now faster with one-click jumps to beginning/end while preserving existing clean control styling.

Added

  • Added First/Last buttons to paginated list controls on Writing index, Change Notes, and Events list views.

Changed

  • Pagination button disabled states now cover edge jumps (First/Prev disabled on page 1, Next/Last disabled on final page).
v2.3.22 2026-02-19 paginationwritingchangeseventsux

List pagination across writing, changes, and events

Added clean paginated list controls (10 items per page) with filter-aware behavior and automatic control hiding when pagination is unnecessary.

Why it matters: Long lists are now easier to scan, while pages with 10 or fewer results stay visually clean with no extra controls.

Added

  • Added styled Prev/Next pagination controls and page status indicators on Writing index, Change Notes, and Events list views.

Changed

  • Pagination is filter-aware and defaults to 10 items per page; controls are hidden automatically when results are 10 or fewer.
  • Pagination state now persists in query params (`?page=`) for direct links and back/forward navigation consistency.
v2.3.21 2026-02-19 footermetadatareleaseux

Footer release/version metadata

Added persistent site version and precise last-updated timestamp to the global footer.

Why it matters: Every page now shows a visible release version plus an Eastern-time timestamp including weekday, hour, and minute.

Added

  • Footer now displays `Version vX.Y.Z` and `Last updated` with weekday + date + hour:minute (ET).

Changed

  • Introduced shared `SITE_RELEASE_VERSION` constant for consistent version rendering across site UI and release notes.
v2.3.20 2026-02-19 uxspacingvisual-cohesionsite-wide

Site-wide spacing and alignment cohesion pass

Ran a full-site spacing and centering pass across shared navigation chrome and primary list pages to tighten rhythm and normalize control alignment.

Why it matters: Navigation tabs/links and page-level control stacks now align more consistently with reduced dead space between major sections.

Changed

  • Normalized header nav and mobile sticky-browse tab heights/alignment for a consistent control baseline.
  • Aligned footer utility links to the same centered control rhythm and tuned top/bottom spacing for cleaner scan flow.
  • Tightened first-stack spacing on Experience and Education listing surfaces for better page rhythm continuity.
v2.3.19 2026-02-19 writinguxspacingvisual-cohesion

Writing index spacing and alignment refinement

Tightened control-to-card spacing, removed empty filter-chip gap, and normalized type-pill centering for cleaner visual rhythm on the Writing index.

Why it matters: Controls and cards now feel more evenly spaced with better vertical alignment and less dead space in the filter shell.

Changed

  • Retuned writing-index control shell spacing (padding and row gaps) and reduced control-to-card stack gap.
  • Adjusted type toggle pill sizing for more consistent centering and hit-area alignment with other controls.

Fixed

  • Removed empty-state whitespace under writing filters by hiding the chip row when no active chips are present.
v2.3.18 2026-02-19 writinguxvisual-cohesion

Writing action-row cohesion pass

Aligned spacing and sizing of action-row controls by styling the read-progress chip with the same button tokens used by PDF, Copy, and Discuss.

Why it matters: Writing action controls now read as one cohesive control set with consistent spacing, typography, and hit area.

Changed

  • Restyled the read-progress indicator to match existing action-button dimensions and visual treatment.
v2.3.17 2026-02-19 writinguxreadability

Writing progress indicator switched to persistent percent chip

Replaced the top progress line with a persistent read-percentage chip beside PDF/Copy/Discuss for clearer visibility.

Why it matters: Reading progress is now always visible in the action row as text (for example, `42% read`) instead of a subtle line at the top.

Changed

  • Replaced the thin sticky progress line with an inline action-chip percentage indicator in the writing controls row.

Improved

  • Progress percentage now updates only when value changes to reduce unnecessary DOM churn while scrolling.
v2.3.16 2026-02-19 writinguxregression-fix

Reading progress bar behavior fix

Fixed writing detail reading progress so it tracks correctly in the site’s body-scrolling layout instead of appearing static.

Why it matters: The top reading line now visibly advances as you scroll long writing pages and reaches full width near the end of the article.

Fixed

  • Progress calculation now reads from whichever scroll container is active (`window`, `documentElement`, or `body`) and listens at document capture level for reliable updates.
v2.3.15 2026-02-19 cilinkcheckeventscalendarreliability

Linkcheck reliability lane + events intelligence CTA pass

Introduced tiered external link checking, added stale-link suggestion output, and expanded events quick actions with Calendar plus stronger confidence/acquisition context.

Why it matters: CI linkcheck now fails less on known unstable domains while still enforcing strict-quality links, and event cards/map/details provide faster actionability and evidence context.

Added

  • Added linkcheck policy preprocessing (`strict`/`warn`/`ignore`) and new scripts for warn-tier checks plus stale-link replacement suggestions.
  • Added event-level Google Calendar deep links on cards, map popups, and expanded event links.

Changed

  • Linkcheck workflow now blocks only strict-tier domains while running unstable domains in non-blocking warn mode with machine-readable output artifacts.

Improved

  • Added confidence-notes and acquisition-reference summaries in event details to improve source provenance clarity during triage.

Fixed

  • Addressed stale known links via actionable suggestion reporting (AUSA events URL, SAM API docs endpoint, and WEF canonical URL mapping).
v2.3.14 2026-02-18 writingtocuxregression-fixultrawide

TOC hover scrollbar no-shift fix

Eliminated TOC text jitter caused by scrollbar mode-switching on hover/focus.

Why it matters: Hovering the right-side TOC now reveals scroll affordance without shifting words or reflowing line breaks.

Fixed

  • Changed TOC scrollbar behavior to keep a stable gutter and constant scrollbar width, with colors transitioning on hover/focus instead of width toggling.
  • Prevented TOC content reflow by removing hidden-to-visible scrollbar width changes that caused horizontal text movement.

Added

  • Playwright regression test asserting TOC hover does not shift first-link position or width.
v2.3.13 2026-02-18 writinglayoutultrawideuxregression-fix

Writing detail rail no-clip fix on ultra-wide screens

Fixed clipping between writing detail sticky actions and the right-side TOC rail after the ultra-wide width expansion.

Why it matters: On large displays, the PDF/Copy/Discuss action box no longer clips into the TOC rail, and TOC width stays compact and stable.

Fixed

  • Reserved a dedicated right rail on 2xl+ for writing detail pages so sticky action controls and article surfaces do not collide with TOC.
  • Capped TOC rail width (`max-width`) to avoid overstretching and keep scan-friendly proportions on very wide monitors.

Added

  • Playwright regression coverage to assert action bar and TOC do not overlap at 1536px, 1900px, and 2200px widths.
v2.3.12 2026-02-17 pipelinewritingmemospublishingsafety

Draft writing guardrail in sync pipeline

Hardened Whitepaper sync so notes/memos marked as draft are excluded from site content and memo PDF publishing.

Why it matters: You can now keep writing in pipeline with `status: draft` without accidentally publishing markdown pages or direct memo PDFs on the public site.

Changed

  • `sync-whitepaper` now syncs only published notes/memos (status defaults to published when omitted).
  • Memo PDFs are now copied only when tied to published memos (via `pdfPath` or matching slug stem).
v2.3.11 2026-02-17 layoutdesktopultrawideux

Ultra-wide layout expansion for large screens

Expanded overall content width on very large displays (1900px+) so center content uses substantially more horizontal space.

Why it matters: On ultra-wide monitors, pages no longer feel boxed into a narrow center column and can use much more of the available viewport.

Changed

  • Added a 1900px+ responsive breakpoint that increases `.site-main` max width to `min(96vw, 116rem)`.
  • Expanded shared `.container` width at 1900px+ to `min(94vw, 112rem)` for better header/footer and section alignment.
v2.3.10 2026-02-17 changesmobileuxfilters

Changes mobile filter usability fix

Fixed `/changes` mobile usability by removing sticky filter lock on phones, tightening search/control sizing, and constraining the tag area so release content stays visible.

Why it matters: On mobile, release entries are now immediately readable instead of being obscured by an oversized sticky filter surface.

Changed

  • Changed `.changes-filter-bar` to non-sticky on mobile and retained sticky behavior for desktop only.
  • Added mobile-friendly sizing for search/clear controls and improved input shrink behavior.
  • Constrained tag cloud height on phones with internal scroll to prevent viewport takeover.
v2.3.9 2026-02-17 uxvisualmobileglobal

Global visual polish across all pages

Applied a site-wide beautification pass: calmer background grid, softened surface borders, cleaner card depth, tighter mobile heading rhythm, and refined header/footer link chrome.

Why it matters: Pages now feel cleaner and more consistent end-to-end with better scanability and less visual noise, especially on mobile.

Changed

  • Updated global surface tokens and card styling (`.card`) for cleaner border hierarchy and subtler elevation.
  • Refined header navigation pills and footer utility links for a more consistent visual system.
  • Reduced body grid intensity and tuned mobile spacing for section titles and footer controls.

Improved

  • Added global control transitions for smoother hover/focus feedback across form and button elements.
v2.3.8 2026-02-17 eventsmobileuxreadability

Events mobile readability cleanup

Refined `/events` card layout and typography on phones to prevent right-rail controls from crushing title/metadata width and to improve scan speed.

Why it matters: Event cards now read cleanly on mobile with less wrapping noise, tighter action controls, and clearer metadata grouping.

Changed

  • Card action rail now stacks below content on small screens instead of competing for horizontal title space.
  • Converted card metadata line into wrapped meta items with separators that collapse cleanly on mobile.
  • Compacted mobile button/chip sizing (`In Nd`, `Link`, `Map`, confidence/freshness/new badges) to reduce visual crowding.
v2.3.7 2026-02-17 uxeventsmobileperformancechanges

UX sweep: quick topic filters, trust badges, newness cues, and lighter script loading

Implemented a broad UX pass across Events/Writing/Changes: quick AI-cloud-software-cyber filters, inline confidence/freshness badges, new-since-last-visit cues, mobile control compaction, and page-specific helper-script loading.

Why it matters: Faster scanning, higher trust clarity, improved mobile reading space, and lower non-essential script overhead on non-writing pages.

Added

  • Added quick topic filter chips on Events (`AI`, `Cloud`, `Software`, `Cyber`) with URL-persisted state.
  • Added inline trust signals to event cards: confidence band + evidence freshness + `New` badge for unseen events.
  • Added `New` badge support on Change Notes releases based on last-seen version in browser local storage.

Changed

  • Further compacted mobile top chrome: tighter header spacing, compact sticky browse shell, and icon-labeled compact writing action pills.
  • Moved non-critical helper scripts (`copy-link`, `codeblock-tools`) to writing pages only and switched global shortcuts script from inline payload to external module URL loading.
v2.3.6 2026-02-17 mobilewritinguxdensity

Mobile writing header density reduction

Reduced vertical space used by mobile writing pages by compressing sticky browse controls and converting the writing action bar to a compact single-row scroller.

Why it matters: On phones, the top navigation/action region now occupies materially less height, preserving more visible reading area above the fold.

Changed

  • Sticky mobile browse bar is now a single compact row (removed secondary row actions from the top rail).
  • Writing action controls now render as a compact horizontal scroller on mobile instead of a two-row stacked block.

Improved

  • Hidden PDF page/size metadata on small screens to reduce control width and visual clutter.
v2.3.5 2026-02-17 eventsaicloudsoftwarefooter

Cloud/software/AI event expansion + footer nav trim

Added additional cloud/software/AI-focused federal event records from official GovCIO event pages and trimmed footer links to utility-only navigation.

Why it matters: The events tracker now includes more AI/cloud/software signal while the footer is cleaner and avoids duplicating primary header navigation.

Added

  • Added six official GovCIO 2026 events to the radar dataset: Defense IT Summit, CyberScape Summit, Federal IT Efficiency Summit, Federal Tech Leaders Summit, Federal Cloud & Data Forum, and Health IT Summit.

Changed

  • Trimmed footer navigation to utility links only (RSS, Changes, License, GitHub, LinkedIn, Email), removing duplicate primary-section links already present in header navigation.
v2.3.4 2026-02-17 siteprofilelinkedinseofooter

LinkedIn profile link added to site navigation/footer surfaces

Added Adam’s LinkedIn profile link to the site footer and homepage Person structured data (`sameAs`).

Why it matters: Visitors and search engines now have an explicit LinkedIn profile reference directly from site UI and metadata.

Added

  • Added LinkedIn link to footer navigation: `https://www.linkedin.com/in/adamnboas/`.

Changed

  • Extended homepage Person schema `sameAs` list to include LinkedIn profile URL.
v2.3.3 2026-02-17 writingpapersacp-rarenderingfix

ACP-RA web duplicate Executive Summary suppression

Fixed duplicate Executive Summary rendering on the ACP-RA writing page by suppressing a leading unnumbered duplicate block when an in-body Executive Summary section is already present.

Why it matters: ACP-RA now displays a single Executive Summary section in web view, matching expected reading flow.

Fixed

  • Added generated-paper HTML normalization to remove duplicate leading Executive Summary block when duplicate `id="executive-summary"` sections are present.
v2.3.2 2026-02-17 eventsndiantsametadatabrowser-relay

NDIA/NTSA event-detail enrichment from live browser data

Enriched the full NDIA/NTSA 2026 event set with card-level metadata from the live NDIA browser page, including registration/agenda links, type/location parsing, and cleaned deduplication.

Why it matters: Tracker records now carry substantially more actionable detail for NDIA/NTSA events while preserving official-link legitimacy gating.

Changed

  • Updated NDIA/NTSA 2026 entries with live card metadata: date ranges, type/venue/location normalization, and richer event descriptions.
  • Added available registration and agenda links into ontology links for newly integrated event records.

Fixed

  • Removed duplicate I/ITSEC representation and retained a single canonical tracker record tied to the official NTSA event URL.
v2.3.1 2026-02-17 eventsingestndiantsabrowser-relay

Bulk NDIA 2026 calendar ingest from live browser session

Pulled the full currently listed NDIA/NTSA 2026 calendar set from a live browser-visible NDIA events page and added missing records with official event URLs.

Why it matters: Coverage expanded immediately with broad NDIA/NTSA 2026 event visibility despite direct-fetch anti-bot blocking on NDIA endpoints.

Added

  • Added 27 missing NDIA/NTSA 2026 events from the live NDIA events calendar into `src/data/radar/events.ts`.
  • Attached official event links for each newly ingested calendar record (event-page canonical URLs).

Changed

  • Normalized new records to Radar schema with consistent provenance notes indicating browser-relay ingest path.

Improved

  • Expanded near-term conference pipeline coverage while NDIA anti-bot protection continues to block direct crawler fetches.
v2.3.0 2026-02-17 eventssourcesautomationgithub-actions

Public feed registry + daily crawl automation

Added a public source registry and one-off URL list for PR-based contributions, plus a scheduled GitHub Action that crawls feed health daily and opens report PRs.

Why it matters: Contributors now have a clear PR target for event sources, and feed reliability monitoring is automated with a daily crawl report.

Added

  • Added public registry file `src/data/radar/feed-registry.json` and public page `/events/sources/` for feed transparency + PR contribution.
  • Added crawler `scripts/crawl-radar-feed-registry.py` with outputs `feed-crawl-report-latest.json|md`.
  • Added scheduled workflow `.github/workflows/radar-feed-crawl.yml` to run daily and open/update a PR with crawl report changes.

Changed

  • Linked source-feeds and registry PR target directly from `/events/` header.
  • Added npm script `events:feed-crawl` for local/manual feed health runs.
v2.2.0 2026-02-17 eventssourcesingestoperations

Marine Military Expos source integration + feed inventory

Integrated Marine Military Expos into priority-source ingestion and published a durable inventory of active event feeds and aggregator pull targets.

Why it matters: Event sourcing is now clearer and broader, with explicit feed operations guidance for ongoing monitoring and ingestion.

Added

  • Added `Marine Military Expos` scraper support in priority-source import pipeline.
  • Added source inventory file: `src/data/radar/event-source-feeds-2026-02-17.md` (active feeds + aggregator targets + cadence).

Changed

  • Updated `Modern Day Marine 2026` provenance/links to official `marinemilitaryexpos.com` source.
  • Updated source-priority notes to reflect Marine Military Expos availability and NDIA anti-bot constraints.
v2.1.9 2026-02-17 eventsmapdata-qualitylocation

Map location accuracy hardening (coordinate fixes + fallback suppression)

Corrected bad imported coordinates for key Europe-based tech expo events and prevented fallback placeholder coordinates from rendering as map pins.

Why it matters: Event cards keep visibility, while map markers now avoid misleading placements when precise geocoding is missing.

Fixed

  • Updated incorrect fallback coordinates for Ramstein, Wiesbaden, Grafenwoehr, Stuttgart-area, and Spangdahlem records.
  • Corrected malformed location metadata for `Joint Industry Forum at Kelley Barracks` (`Stuttgart Germany, USA` β†’ `Stuttgart, Germany`).

Changed

  • Map rendering now suppresses default fallback coordinates (`39.5,-98.35`) so unresolved locations do not appear at a misleading point.
v2.1.8 2026-02-17 eventsingestndiaspecial-operationsverification

NDIA SpecialOps26 event ingest from official link path

Added the NDIA Special Operations Symposium 2026 event using NDIA official URLs with anti-bot-aware confidence handling.

Why it matters: The events feed now captures this additional SOF-relevant NDIA conference with trusted source links and date visibility.

Added

  • Added `36th Annual NDIA Special Operations Symposium` with event and registration links from NDIA URL paths.

Changed

  • Documented anti-bot access limitation on direct fetch and marked confidence/location notes accordingly for follow-up verification.
v2.1.7 2026-02-17 eventsingestaiagenticverification

GovCIO events expansion for AI/agentic signal

Expanded GovCIO coverage by adding Federal AI Forum and converting a seed AI Summit record into a verified official event entry.

Why it matters: The events feed now captures more agentic/federal AI signal from a trusted source while reducing low-confidence seed artifacts.

Added

  • Added `Federal AI Forum 2026` from GovCIO official event page with agentic AI relevance.

Changed

  • Replaced low-confidence seeded `Federal AI Summit` details with verified `AI Summit 2026` GovCIO event metadata and official links.
v2.1.6 2026-02-17 eventsingestaiautonomyverification

Targeted AI/autonomy event ingest + trust-link remediation

Added AI/agentic/autonomy-relevant future events and upgraded key existing records from disallowed-source provenance to official links.

Why it matters: The active /events feed now includes stronger AI/autonomy signal with better link trust and fewer records blocked by legitimacy gating.

Added

  • Added `AI for Defense Transformation 2026` (IDGA), `AI+ Expo for National Competitiveness 2026` (SCSP), and `Defense IT Summit 2026` (GovCIO) with verifiable event links.

Changed

  • Updated existing `AUVSI XPONENTIAL 2026` and `Autonomy in Defense 2026` entries to trusted official provenance/links so they pass active-feed trust gating.
v2.1.5 2026-02-17 eventsog-imagecopy

Events OG title simplified

Updated the Events OG card title text to the shorter label requested.

Why it matters: Social previews now present a cleaner, minimal title: `DoW Events`.

Changed

  • Changed the /events OG card title from `DoW Events + BD Intelligence` to `DoW Events`.
v2.1.4 2026-02-17 eventsog-imagecopysocial

Events OG card expanded with full descriptive subtitle

Updated the /events social preview image copy to use the available space with fuller explanatory text.

Why it matters: Link previews now communicate page purpose more clearly before click-through.

Changed

  • Expanded the Events OG subtitle to a fuller description and increased line capacity for clearer preview context.
v2.1.3 2026-02-17 eventscopylaunch-readiness

Events hero subtitle removed per directive

Removed the extra hero subtitle line from /events for cleaner launch framing.

Why it matters: The events page top section is now tighter and less verbose while preserving functionality.

Changed

  • Removed `Conference-first tracking with sourced opportunity context, SAM visibility, and evidence-backed links.` from the /events hero area.
v2.1.2 2026-02-17 eventsingestverificationdata-quality

Trusted-source ingest pass for future verifiable events

Ran a trusted-source ingest sweep and merged new future events with verifiable external links while suppressing duplicates.

Why it matters: The active events feed gains fresh validated opportunities without reintroducing low-trust or duplicate entries.

Added

  • Ingested newly discovered future events from trusted sources (net-new records only after duplicate suppression).

Changed

  • Executed priority-source importer and retained only net-new entries aligned to future/trusted/verifiable gating.
v2.1.1 2026-02-17 eventsuxcopylaunch-readiness

Events UX/verbiage tightening pass for launch clarity

Refined /events copy and labels for clearer public comprehension while preserving capability-first intelligence depth.

Why it matters: The page now reads cleaner and more actionable on first scan, especially for external launch audiences.

Changed

  • Updated page headline/description and top explanatory line for concise capability framing.
  • Renamed key labels for clarity (`Geographic view`, `Upcoming events`, `Verified links`, `Public government contacts`, `Schedule`).
  • Adjusted filter/search wording (`High-confidence only`, improved search placeholder semantics).
v2.1.0 2026-02-17 eventsbd-intelligenceuxinformation-design

Event intelligence metadata aligned to capability-first direction

Removed low-signal ontology fields from the expanded event panel and tightened insight generation to sourced, actionable intelligence only.

Why it matters: Expanded metadata now reads like a practical DoW BD intelligence surface instead of an internal modeling dump.

Changed

  • Renamed expansion header to `Expand event intelligence` and removed generic ontology blocks (capability areas, mission threads, stakeholders, decision windows).
  • Reframed `BD insights` as `Actionable insights` and limited outputs to sourced signal/deadline/SAM intelligence.

Improved

  • Government organization inference now suppresses generic placeholder labels and prefers concrete agency/source entities.
v2.0.9 2026-02-17 eventsdata-qualityverification

Event legitimacy gate tightened (domain trust + audit artifact)

Added explicit source-domain trust gating and produced a one-by-one legitimacy audit artifact for all event records.

Why it matters: Events tied to known low-trust aggregator domain `jbenton1.github.io/government-guide/conference-tracker/` are excluded from active display until independently verified.

Fixed

  • Blocked disallowed source domain links from eligibility (`jbenton1.github.io`) in active event filtering and link rendering.
  • Required future date + usable external link + trusted source domain for inclusion in active event feed.

Added

  • Generated row-by-row audit report: `src/data/radar/event-legitimacy-audit-2026-02-17.md` (kept vs dropped with reasons).
v2.0.8 2026-02-17 uxmobilehomepagebugfix

Homepage mobile overflow fix for featured cards

Fixed a mobile rendering bug where featured reading titles could overflow card bounds and appear clipped/bleeding outside the container.

Why it matters: Homepage cards now wrap safely on small screens and preserve readable layout without horizontal clipping artifacts.

Fixed

  • Hardened featured reading card layout with min-width constraints, overflow clipping, and wrapped title rendering.
  • Updated mobile top quick-link row to allow wrapping under tight viewport/text-size conditions.
v2.0.7 2026-02-17 eventsbd-intelligencedata-qualityux

Future-only event feed + one-by-one link hardening pass

Restricted the active tracker feed to future-dated events with usable external references and promoted real source links when official links are missing.

Why it matters: The board now suppresses stale/non-future records and improves link integrity by preferring valid external event references over placeholders.

Fixed

  • Removed non-future entries from active display (only future-dated events remain in tracker output).
  • Required at least one usable external URL (official or provenance) for events to appear.

Changed

  • Primary event `Link` now falls back to validated provenance URLs when a direct official URL is absent.
  • Expanded detail links with source references (`Ref 1..n`) to support one-by-one verification workflows.
v2.0.6 2026-02-17 eventsbd-intelligenceuxdata-quality

Events tracker reframed as generic DoW + BD intelligence capability

Renamed the Events surface to a generic DoW events + BD intelligence capability and filtered out manual seed-only records without real external sources.

Why it matters: Tracker language is now capability-oriented, and trust is improved by excluding synthetic/unverifiable seed records from the active feed.

Changed

  • Renamed page and key detail blocks toward a generic capability model (`DoW Events + BD Intelligence Tracker`, `Opportunity intelligence`, `BD insights`).
  • Kept conference-first UX while preserving layered opportunity intelligence (SAM links, government organizations, POCs, insights).

Fixed

  • Filtered out manual seed-only records that lacked real external official links, reducing non-verifiable event noise.
v2.0.5 2026-02-17 eventsuxdata-quality

Events link integrity pass + circular-link suppression

Hardened event link rendering so circular/self-referential links are excluded and only usable external links surface in card actions and metadata.

Why it matters: The `Link` button now appears only when an event has a valid external official URL, preventing loops back to the tracker itself.

Fixed

  • Suppressed circular links that pointed back to `/events/` from both top card actions and detail link sections.
  • Normalized/validated event links before rendering to avoid showing invalid link actions.

Changed

  • Cleaned placeholder self-links from seeded event records so only real external event links remain eligible for display.
v2.0.4 2026-02-17 eventsacquisitionuxintelligence

Events informational overlay generalized for public intelligence use

Replaced user-specific BD tracking fields with generic informational overlays oriented to opportunity discovery and public-source context.

Why it matters: Expanded event details now prioritize SAM links, government organizations, government POCs, and relevant insights instead of personal engagement status tracking.

Changed

  • Replaced `BD engagement` panel with a generic `Informational overlay` panel for opportunity context.
  • Converted contact section into `Government POCs` and added `Government organizations` + `Relevant insights` blocks.
  • Expanded SAM handling to surface SAM links as explicit opportunity references in detailed metadata.
v2.0.3 2026-02-17 eventsseosocialux

Events OG card subtitle fit tuned for more visible text

Adjusted OG text layout so the Events page subtitle can occupy more space before truncation.

Why it matters: Shared `/events/` links now show a fuller subtitle instead of clipping early with ellipsis.

Changed

  • Updated Events OG card subtitle rendering to use a slightly smaller subtitle font and up to two lines.
v2.0.2 2026-02-17 eventsseosocial

Events page OG image generated and wired

Added a dedicated social preview image for the Events tracker and connected page metadata to use it.

Why it matters: Sharing `/events/` now renders a page-specific OG card instead of the global default image.

Added

  • New generated image asset: `/public/og/events.png` via the OG image generator.

Changed

  • Events layout now sets `image="/og/events.png"` for Open Graph and Twitter cards.
v2.0.1 2026-02-17 eventsacquisitionoperationsux

Conference-first tracker cleanup with deeper BD/evidence overlays

Re-centered Events on conference tracking while keeping SAM/opportunity intelligence in detailed metadata through engagement and evidence overlays.

Why it matters: The interface is cleaner for fast event scanning, and BD/opportunity depth is preserved where it matters: inside detailed event analysis.

Added

  • New BD engagement + contacts metadata block (status, owner, next action, touch date, contact list) in expanded event details.
  • New evidence-health view per source (`Fresh/Watch/Stale`) with timestamp-aware provenance badges.
  • Direct SAM links in map popups and metadata links section when SAM provenance is available.

Changed

  • Re-centered Events to conference-first controls (removed explicit opportunity/navy top-level filter clutter).
  • Opportunity and Navy/NSWC signals now show as contextual overlays in detailed event metadata instead of dominating top controls.

Improved

  • Removed duplicate notice labeling when it repeats an existing engagement signal tag.
  • Compact summary strip now prioritizes scan-critical conference metrics (total, upcoming, industry-day, next window, needs-date).
v1.5.6 2026-02-17 eventsfiltersuxacquisition

Events overlay lens + SAM-vs-conference visual coding

Added explicit source-layer filtering and visual differentiation so SAM official notices can be overlaid against conference/workshop/hackathon events without ambiguity.

Why it matters: You can now compare opportunity notices and conference ecosystem activity in one view while still quickly isolating each channel when needed.

Added

  • New source-layer filter (`All`, `Conferences/workshops/hackathons`, `Government opportunity signals`, `SAM official notices`).
  • Preset shortcuts for conference-only and SAM-only slices in the compact control shell.
  • SAM/opportunity source tags on event cards and source badges inside map popups.

Changed

  • Map pin rendering now applies source-layer color coding in addition to event-type tone.
  • Filter/query state now persists `source=` in URL so overlays are shareable and reproducible.

Improved

  • Event summary stats now include SAM official notice count for quick channel health checks.
  • Accessibility labels added to filter controls to keep axe-critical checks clean as controls expand.
v1.5.5 2026-02-17 eventsacquisitionnavydata

Navy / NSWC sourcing expansion + solicitation-heavy SAM profiles

Expanded Events ingestion with Navy-targeted SAM profiles and an official NAVSEA/NSWC page crawler for industry-day signal discovery.

Why it matters: Higher coverage of Navy and naval-warfare-center opportunity signals with cleaner prioritization for solicitation-relevant action.

Added

  • Navy and NSWC-specific SAM import modes (`events:navy-sam-import`, `events:nswc-sam-import`) with organization-focused filtering.
  • Additional service-oriented SAM profiles (`events:army-sam-import`, `events:air-sam-import`, `events:marine-sam-import`, `events:joint-sam-import`).
  • Official NAVSEA/NSWC page crawler (`events:navy-pages-import`) to surface industry-day and outreach candidates from warfare-center pages.

Changed

  • SAM importer now supports additional notice types (`o`, `k`) for deeper solicitation relevance alongside p/r/s signal notices.
  • Importer scoring now includes deterministic relevance reasons and Navy-linked confidence tagging.

Improved

  • Priority-source guidance now explicitly ranks NAVSEA/NSWC official pages + expanded SAM profile strategy.
v1.5.4 2026-02-17 eventsfiltersacquisitiondata

Events industry-intelligence lens + acquisition signal pipeline

Added engagement-signal filtering (industry day, pre-solicitation, sources sought, vendor outreach, special notice) and introduced a SAM.gov opportunities importer baseline.

Why it matters: You can now isolate actionable procurement engagement signals faster and prepare a cleaner ingestion path for deadline-aware tracking.

Added

  • Preset event views for all events, government opportunity signals, and key engagement kinds.
  • New engagement filter with URL-persisted state and filter-chip visibility.
  • Acquisition-signal metadata block in event details (notice type, agency, solicitation number, response/registration dates when present).
  • New SAM opportunities importer script (`events:sam-import`) for p/r/s notice ingestion candidates.

Changed

  • Events now infer engagement kinds from structured metadata plus deterministic title/description heuristics.
  • Map popups now surface opportunity badges when engagement signals are detected.

Improved

  • Priority-source notes now include SAM.gov API as a first-class source for acquisition notice coverage.
  • Importer pipeline hardening includes stronger duplicate prevention by canonical title-year keys and source precedence.
v1.5.3 2026-02-17 writinguxaccessibility

Code block wrap control reliability fix

Fixed Wrap/Unwrap behavior for numbered code blocks on writing pages and improved visible state feedback.

Why it matters: Long code samples now reliably wrap on demand, especially on mobile and narrower windows.

Added

  • Wrap control now toggles visible state text (`Wrap`/`Unwrap`) with pressed-state semantics.

Changed

  • Numbered code-line wrapping now correctly overrides base `white-space: pre` rules when wrap mode is enabled.

Improved

  • Applied safer word breaking/overflow handling for long tokens in wrapped code lines.
v1.5.2 2026-02-17 eventsuxdata

Events cost visibility in compact + detailed views

Registration cost now appears in event cards and metadata views only when cost data is actually tracked.

Why it matters: Improves decision-readiness while keeping cards clean when cost data is absent.

Added

  • Compact card metadata now includes `Reg: <amount>` when registration cost exists.

Changed

  • Detailed logistics now conditionally renders estimated cost only when tracked.

Improved

  • Cost rendering now avoids separators/placeholders when cost is missing.
v1.5.1 2026-02-17 navigationuxaccessibilityevents

Cohesion pass + accessibility hardening

Aligned nav behavior and closed a critical Events accessibility gap found in regression checks.

Why it matters: More consistent navigation behavior and stronger accessibility confidence on core pages.

Added

  • Extended overflow and axe critical checks to include `/events/` and `/changes/`.

Changed

  • Kept Changes discoverability footer-only across desktop and mobile surfaces.

Improved

  • Tightened Events view consistency during compact/detailed mode passes.

Fixed

  • Resolved critical axe issue: `#radar-sort` now has an accessible name (`aria-label`).
v1.5.0 2026-02-16 changesnavigationuxproductivity

Change Notes 2.0 + global keyboard shortcuts

Upgraded release notes into a filterable capability log and added site-wide keyboard navigation.

Why it matters: Faster wayfinding and faster release comprehension with less click friction.

Added

  • Global shortcut system: / (focus search), ? (shortcut panel), and g then h/w/e/c (jump navigation).
  • Keyboard shortcuts overlay with click-to-navigate quick actions.
  • Change Notes filter model with tag toggles, query search, and URL-persisted state.

Changed

  • Restructured release entries around capability outcomes instead of implementation churn.
  • Promoted Changes into desktop and mobile navigation surfaces for first-class discoverability.

Improved

  • Sticky filter shell keeps controls in reach while scanning long release history.
  • Added active-filter chips and release counts for clearer scan state.

Fixed

  • Shortcut handling now avoids input/textarea/contenteditable contexts to prevent typing conflicts.
v1.4.0 2026-02-16 eventsnavigationdocs

Events-first navigation + public change tracking

Shifted the site from Radar framing to Events framing and launched public release notes.

Why it matters: Cleaner information architecture and clearer trust surface for shipped capability changes.

Added

  • Public, versioned Change Notes page at /changes/.
  • Direct footer access to Changes for persistent release visibility.

Changed

  • Replaced /radar with /events as the primary event-intelligence route.
  • Relabeled global navigation surfaces from Radar to Events.

Improved

  • Kept event-centric controls compact: search, branch/type/status filters, upcoming/verified/past toggles.
  • Map-card linkage and event-link exposure stay optimized for scan-speed operations.
v1.3.0 2026-02-16 writinguxnavigation

Long-form reading ergonomics

Improved long-page readability and reduced friction in writing detail navigation.

Why it matters: Higher reading throughput with less orientation loss in dense technical content.

Added

  • Right-rail TOC for long pages on very large screens with active-section tracking.
  • Sticky writing detail actions (PDF, copy link, discuss) for persistent utility access.

Changed

  • Restored full reading-pane width while keeping TOC external to text column.

Improved

  • Intent-only TOC scrollbar, smoother TOC auto-scroll, and wide-screen clipping hardening.
  • Image lightbox behavior and table wrappers with sticky headers for technical artifacts.
v1.2.0 2026-02-13 eventsfiltersuxdata

Events simplification + scan speed

Simplified event decisions around urgency, clarity, and fewer multi-step controls.

Why it matters: Faster shortlist decisions and reduced operator overhead per review cycle.

Added

  • Hide-past default with explicit reveal control.
  • Source-priority ingestion and dedupe pass for larger event inventory coverage.

Changed

  • Moved to date-driven urgency (days-until) as primary prioritization signal.

Improved

  • Flattened filters and moved sorting into list header for lower interaction cost.
  • Standardized event terminology and map/card metadata behaviors.
v1.1.0 2026-02-12 writingfiltersnavigationlegal

Writing controls baseline + legal surface

Established reusable writing controls and persistent site utility surfaces.

Why it matters: More consistent discovery and better legal/transparency posture across the site.

Added

  • Compact writing controls shell with searchable tags and fast clear/reset.
  • Clickable writing type pills (paper/note/memo) for include/exclude filtering.
  • Dedicated legal and license pages linked from persistent footer surface.

Changed

  • Unified sticky browse behavior across mobile sections.