Every build leaves a record. No silent releases. No mystery patches.
Spatulaware v0.4.0
Operations Command Center
Rebuilt System Status into bookmarkable operational tabs for Command Center, Ingestion, Schedulers, X Operations, Editorial, Market Desk, Connectors and Infrastructure.
Added an attention-first overview with direct paths into live source, receiver, budget, market and editorial diagnostics.
Spatulaware v0.3.9
Bob Burgundy Missing Signal 404
Unknown GrottoScout routes now receive a branded 404 page instead of the browser’s plain missing-page screen.
Bob Burgundy is on the desk investigating the missing signal, with a direct return route to the Wire.
Spatulaware v0.3.9
Editorial Queue Integrity and COOPS Market Desk
Pending and reviewed editorial queues are independently loaded so the review inventory cannot hide pending stories behind a global limit.
Added COOPS, TheCoops, to Tokens That Matter and the curated Portfolio Desk using its trusted Avalanche DexScreener USD pair.
No database migration is required.
Spatulaware v0.3.8
Approved Ecosystem Sources and Pulse Identity Signals
Seeds the ten approved Grotto ecosystem X sources while preserving existing source configuration and historic stories.
Pulse continues to present public Grotto @username identity where the activity service provides it, with a wallet-safe fallback.
No database migration is required.
Spatulaware v0.3.7
X Gap Recovery and Source Watermarks Hotfix 8
Removes stale verifier requirements for a nonexistent Pulse GIF and page-local motion rule.
The verified 1254 × 1254 Pulse PNG remains the page’s sole Bob artwork; no runtime, database, or production SQL behavior changed.
Spatulaware v0.3.7
X Access Diagnostics & Per-Account Classification Hotfix 6
Surfaces X HTTP 402 Payment Required responses as an actionable source and scheduler diagnostic without exposing credentials or query strings.
All managed x-account records now receive the correct X Blurb, source-tone and related-X treatment, while historic X posts are matched before a per-account scan can queue a duplicate.
Spatulaware v0.3.7
Configurable Source Registry + Smart X Budgeting Hotfix 5
Captures X’s authoritative usage snapshot before evaluating an account scan’s budget gate.
An old local fallback estimate can no longer block the usage sync needed to replace it. No database migration is required.
Spatulaware v0.3.7
Configurable Source Registry + Smart X Budgeting Hotfix 4
Corrected Smart X Budgeting to use the latest authoritative X usage snapshot plus only local activity since that sync.
Historical local pre-deduplication estimates remain a labeled fallback when X usage is unavailable, rather than permanently exhausting a newly raised budget.
System Status now displays the basis, observed spend, and X usage-sync time behind the budget decision.
Spatulaware v0.3.7
Configurable Source Registry + Smart X Budgeting Hotfix 3
Corrected the production SQL batch for the legacy SourceType conversion so SQL Server executes it only after the new column exists.
No new migration is required; regenerate the idempotent SQL from this Hotfix before rerunning it in production.
Spatulaware v0.3.7
Configurable Source Registry + Smart X Budgeting Hotfix 2
Corrected the EF Core model snapshot so NewsSource.IntervalMinutes is represented on the intended source entity.
No new migration is required; 202608150401_ConfigurableSourceRegistryAndXBudgeting remains the production schema change.
Spatulaware v0.3.7
Configurable Source Registry + Smart X Budgeting Hotfix 1
Corrected the release verifier after v0.3.7 retired the aggregate x-account-watch adapter key in favor of the durable x-account source type.
No source scheduling, X budget, database schema, or public behavior changed.
Spatulaware v0.3.7
Configurable Source Registry + Smart X Budgeting
Moved X account watching to individual, allowlisted database source records with independent cadence, pause controls, health and next-eligible run state.
Added the System Status Source Registry to add a safe X handle without a deployment and adjust an active source between a 15-minute and daily cadence.
Automated X timelines, article enrichment and the Media Wall now protect a configurable monthly budget reserve; Bob’s dashboard shows the automated limit, reserve and remaining amount.
X Media Posters + Bob's Signal Scheduler Dashboard Hotfix 3
Corrected SQL Server batch compilation for the PosterUrl backfill by running it dynamically after the column is added.
Added a guarded, rerunnable full v0.3.6 recovery script for the earlier production interruption reporting Invalid column name 'PosterUrl'.
No new migration or public Media Wall behavior was added.
Spatulaware v0.3.6
X Media Posters + Bob's Signal Scheduler Dashboard Hotfix 2
Preserved EF Core's native Task<int> bulk-update result for the Media Wall frame-backfill helper, satisfying the CA1859 warnings-as-errors rule.
No Media Wall schema, polling, poster, or frame-capture behavior changed from Hotfix 1.
Spatulaware v0.3.6
X Media Posters + Bob's Signal Scheduler Dashboard Hotfix 1
When X supplies an effectively black poster, a visible Media Wall tile now seeks two bounded positions in an approved, same-origin video relay and uses the first useful decoded frame.
Migration 202608150301_XMediaWallFrameCapture stores approved MP4 playback variants and gives current video/GIF entries one bounded receiver refresh before normal incremental polling resumes.
X's official poster stays in place when no better source frame is available, and every tile still opens its original transmission on X.
Spatulaware v0.3.6
X Media Posters + Bob's Signal Scheduler Dashboard
Video and GIF tiles now use X's official preview image through a guarded same-origin poster relay; a branded Grotto transmission card replaces an unavailable or failed poster instead of leaving a black tile.
Migration 202608150201_XMediaPostersAndSchedulerDashboard stores and backfills Media Wall poster URLs.
Bob's Signal Scheduler Dashboard now shows cadence, next run, durable lease state, Media Wall cursor, retry state and the latest 32 receiver runs.
Spatulaware v0.3.5
Signal Scheduler Foundation Hotfix 6
Source-save conflict isolation now processes every EF concurrency entry in a bounded retry loop, so a second conflict cannot escape and fail the receiver.
Conflicting story updates are deferred individually; an unexpected non-story row is detached and named in operational diagnostics without degrading or backing off the receiver.
Removed a redundant immediate author-identity write so each candidate uses one normal source-save operation.
Spatulaware v0.3.5
Signal Scheduler Foundation Hotfix 5
Corrected the scheduler's EF bulk-update value expressions so their entity source is in scope during compilation.
Renamed the public scheduler completion parameter to failureDetail, satisfying the CA1716 warnings-as-errors rule.
Made the ingestion failure completion call fully named for clear, compiler-safe argument binding.
Spatulaware v0.3.5
Signal Scheduler Foundation Hotfix 4
Updated the remaining legacy static HOME verifier pattern to HEADLINES, completing the v0.3.5 navigation transition.
No database migration or runtime receiver behavior changed.
Spatulaware v0.3.5
Signal Scheduler Foundation Hotfix 3
Corrected the scheduler verifier to inspect the actual key declaration in SignalScheduler.cs rather than a qualified usage in a different file.
No database migration or runtime receiver behavior changed.
Spatulaware v0.3.5
Signal Scheduler Foundation Hotfix 2
Replaced the unsupported two-argument String.Contains verifier call with Windows PowerShell-compatible IndexOf matching.
No database migration or runtime receiver behavior changed.
Spatulaware v0.3.5
Signal Scheduler Foundation Hotfix 1
Replaced the retired HOME-before-The-Wire release assertion with the v0.3.5 command contract: HEADLINES leads the public-left group and the separate ADMIN group remains right-side.
Release verification now rejects retired The Wire, Tokens That Matter and Dev Log header commands while preserving the Dev Log footer link.
No database migration or runtime receiver behavior changed.
Spatulaware v0.3.5
Signal Scheduler Foundation + Header Navigation
Editorial ingestion and the X Media Wall receiver now claim durable database leases before they work, preventing overlapping receivers across app instances and Manual Scan Now.
Each scheduled receiver now preserves its next eligible run, last attempt and success, duration, failure streak, bounded retry backoff and small timing jitter.
Administrator System Status now exposes the initial Signal Scheduler surface: cadence, next run, active lease, health and receiver error state.
Ingestion now loads persisted stories only for external IDs returned by the active source response instead of preloading an entire source archive.
The header now leads with HEADLINES; public commands are left aligned and editorial/administrator controls are grouped right. The Wire, Tokens That Matter and Dev Log leave the header; Dev Log stays in the footer.
Migration 202608150101_SignalSchedulerFoundation is required before publishing this release.
Spatulaware v0.3.4
SEO Authority & Discovery Hotfix 1
Corrected the core sitemap's fixed path list to a static readonly field so the release remains clean under the warnings-as-errors CA1861 analyzer rule.
No discovery behavior, URL set or database schema changed.
No database migration is required.
Spatulaware v0.3.4
SEO Authority & Discovery
The submitted public /sitemap.xml address now remains stable as a sitemap index, separating core public destinations from monthly canonical Wire report sitemaps.
Sitemap entries now use genuine UTC modification timestamps instead of treating the current request time or an unrelated story update as a page change.
Only public, canonical report URLs are emitted into article discovery files; private desks, account routes, filters and social-card query variants stay excluded.
The homepage now identifies the product naturally as independent Grotto News for The Grotto L1 while keeping GrottoScout as the primary brand.
About, Editorial Standards, Source & Attribution and Corrections pages establish a public identity, review standard and source relationship for the GrottoScout desk.
Enter The Grotto is identified as an attributed public source relationship; original official destinations remain the reader's path back to the source transmission.
Sitewide structured data now joins Organization, WebSite, NewsArticle and breadcrumb records, with configured verification and official-profile fields ready for Search Console and Bing Webmaster Tools.
Article schema now distinguishes GrottoScout publication time from the originating source and records the original source URL as supporting provenance.
No database migration is required.
Spatulaware v0.3.3
Bob's Broadcast Composer Hotfix 1a
Hotfix 1a removes imported source links and repeated post text before opening X, leaving one clean GrottoScout URL for card discovery.
Public Bob cards and uploaded story artwork now explicitly permit cross-origin retrieval, with secure and legacy X image metadata emitted together.
Ten original 1200-by-628 Bob Burgundy broadcasts now form a reusable Article Desk social-card library.
Editors can choose the anchor desk, live scene, documentary cave, breaking action, helicopter, news van, signal storm, investigation room, underground train or press conference.
The uploader states the exact 1200 × 628, 1.91:1 preparation target before a file is chosen.
Every built-in selection is restricted to the packaged allowlist, updates the article's share metadata and writes an audit event.
Compose on X now prepares the social headline, a concise article introduction and the canonical GrottoScout URL.
Approve & compose on X commits the local publication lock and audit record before redirecting to the X composer.
Composition bounds, library lookup and all ten artwork dimensions are enforced by tests and release verification.
No database migration is required.
Spatulaware v0.3.2
Bob's Visual Transmission Desk
A new 12-frame Bob Burgundy broadcast operator anchors the Media Wall's full-size first column from a dense analog image-control room.
The wall now uses three generous columns: Bob and Media Chat on the left with a two-column masonry transmission field beside them.
A dedicated Media Chat lives beneath Bob without mixing its conversation into article Field Comments.
Approved Scouts can post compact 500-character chat transmissions, remove their own messages and receive duplicate-post protection.
Editors and administrators can hide or restore Media Chat transmissions from Media Wall Moderation.
DISH now appears in Tokens That Matter and the VIP Portfolio Desk using its exact Avalanche Dexscreener pair and direct USD quote.
X ingestion now isolates a concurrently edited story instead of clearing unrelated queued posts from the same scan.
Concurrent automatic X attachment replacement is now isolated by owning story, and a residual Scan Now race returns a retry notice instead of an exception page.
Strict candidate accounting prevents incomplete scans such as 66 discovered but only 58 classified from being reported healthy.
Signal-reactive borders, split-color tears, scanlines and frame breaches bind Bob, chat and media tiles to the site-wide glitch system.
Migration 202608130101_MediaWallChat adds the isolated Media Wall comment channel.
Spatulaware v0.3.1
The Grotto Media Wall
The public /media wall collects visual community transmissions mentioning @TheGrottoL1 on X.
A dense masonry layout presents images, GIFs and video previews without adding another dashboard or editorial rail.
Every tile identifies X as its source and opens the exact original post.
The receiver runs server-side on a bounded interval; visitor traffic never generates X API calls.
Incremental since_id scans preserve newly discovered media beyond X recent search's seven-day window.
Posts already collected by the editorial X intake are skipped so the wall emphasizes fresh community material.
Sensitive content, unapproved media hosts, duplicate post IDs and blocked authors are withheld before display.
Editors and administrators can hide or restore a post and block or unblock an author frequency.
Migration 202608120101_GrottoMediaWall adds isolated post, asset and blocked-author records.
Spatulaware v0.3.0
The Grotto Pulse
The public /activity newsroom follows purchases, launches, reviews, new Scouts, posts and social movement from the official Grotto activity API.
A dedicated Bob Burgundy Pulse operator anchors the familiar large left stage with live telemetry, paper tape, CRTs and analog signal equipment.
Wide screens retain Bob plus three right-side columns; tablets and phones collapse into an intentional reading flow without squashed media.
Consecutive follow records become compact Social Bursts instead of overwhelming the signal stream.
All, commerce, community and social filters share one canonical public activity address.
The receiver deduplicates exact activity IDs and withholds records marked restricted or conflicted.
Official media requires HTTPS, the exact Grotto API host and its image path before display.
The known non-advancing nextOffset source response is handled with a bounded forward-only fallback.
A five-minute live cache and 24-hour last-known-good pulse keep an upstream fault from breaking the page.
Automated tests, sitemap discovery, metadata, smoke coverage and release verification protect the new surface.
No database migration is required.
Spatulaware v0.2.9
Sponsor Signal Network
The Administrator-only Sponsor Signal Network manages sponsors, campaigns, responsive artwork and live inventory at /banners.
One campaign can serve the masthead, homepage triptych and global public footer with independent responsive creatives.
Activation and expiration use UTC schedules; exclusive inventory rejects overlapping conflicts.
The three-card homepage collection sits inside the Wire stage immediately above its header and entries.
Shared inventory uses configurable weights while every placement in one response avoids sponsors already shown whenever distinct inventory is available.
Paid campaigns emit sponsored and nofollow link relationships from the first release.
Administrator previews, Development, Testing and localhost requests are excluded from click and impression metrics.
Pausing a campaign or blocking a sponsor changes the next public selection without a cache delay.
Missing SQL tables, unavailable uploaded artwork and unwritable banner storage fall back to packaged house inventory without stopping the application.
Fifteen responsive house creatives cover Enter The Grotto, CAVE.money, EARLY.GOLD, House of Glitch and DoomCore Games.
Migration 202608090301 and a reviewed idempotent production SQL script add the campaign network.
Spatulaware v0.2.8
Reader Signals & Field CommentsNAVIGATION & MARKET RESILIENCE PATCH 3
HOME is now the first primary navigation command and always returns to the newsroom homepage.
HERESY/USD now tries the verified Blackhole HERESY/WAVAX pool first and the verified Trader Joe pool only when fallback is needed.
Each Dexscreener response must still match Avalanche, the requested pair address, HERESY, WAVAX and a positive USD value.
A CAVE Money catalog outage no longer prevents direct reads of the reviewed token contracts.
Market feed health now reflects USD price availability; a holder-count fault remains visible without zeroing a valid portfolio price.
System Status identifies the HERESY pair that supplied the active conversion.
Email is optional contact information; Scout handle is the required sign-in identity for new accounts.
Open registration no longer sends SMTP mail or requires email confirmation.
Registration__RequireManualApproval controls administrator review and defaults to enabled.
Pending Scouts appear first in User Administration with an explicit Approve action.
The optional SMTP diagnostic console remains available for future outbound mail without blocking startup or signup.
Migration 202608090201 adds an explicit approval timestamp and safely keeps older unconfirmed open registrations pending.
The approval migration uses deferred, conditional SQL so a failed or partially attempted deployment can be rerun safely.
The earlier SMTP diagnostics remain available with privacy-safe traces, normalized failure categories and relay-acceptance evidence.
Administrator System Status now includes a safe mail configuration summary, test send and latest process-lifetime attempts.
SMTP credentials are optional as a pair, allowing provider-approved anonymous relays without sending a blank credential object.
Full reports now keep their headline, media, article body, sources and revision record in one uninterrupted reading column.
The Bob Burgundy field column now carries signed-in Scout comments and one-level replies.
Confirmed accounts can leave one reversible thumbs-up or thumbs-down reaction per published report.
Reader totals are public while voter identities remain private.
Comment writes use anti-forgery validation, rate limits, duplicate suppression, plain-text encoding and server-side reply-depth enforcement.
Owners can remove their comments while reply-bearing conversations retain a safe placeholder.
Editors and administrators can hide or restore comments from the new moderation desk.
Article Desk now reports reaction, visible-comment and hidden-comment totals.
Migration 202608090101 adds account-bound article reactions and field comments.
Spatulaware v0.2.7
HERESY Market Reference Correction
Seven dedicated Bob Burgundy broadcasts now rotate with the Eastern day from Monday through Sunday.
Each 12-frame animation uses consistent timing and a matching static reduced-motion fallback.
HERESY/USD now uses the live Trader Joe HERESY/WAVAX Dexscreener pair.
All HERESY-denominated curated tokens and portfolio totals recover their USD conversion through the corrected reference.
X Signal cards place source identity immediately above a clean headline without repeating the handle.
X Blurbs are now reserved for posts shorter than 150 characters.
A full-width responsive command bar prevents authenticated navigation from crowding the masthead.
The masthead now provides a configuration-driven project promotion slot with HTTPS-only links.
A proportionally restored 970-by-198 Enter The Grotto image provides the first promotional placeholder.
The Archive now searches report titles, summaries, body text, tags and X identities while preserving category filters.
No database migration is required.
Spatulaware v0.2.6
Open Registration & Scout Profiles
Readers can register for a standard Member account; the original email-confirmation gate was superseded by v0.2.8 Open Admission Patch 2.
Administrator and Editor access remains invitation-only.
Scout profiles support a unique handle, safe avatar, biography, X handle, website and public visibility control.
Wallet ownership is proven with an expiring one-use signature message that cannot authorize funds or transactions.
Grotto VIP and Portfolio access now require both wallet proof and a successful Grotto identity synchronization.
Registration, profile uploads and wallet verification are rate-limited and audited.
Migration 202608040201 adds Scout profile and wallet challenge storage.
Newtonsoft.Json is pinned to 13.0.4 so the wallet-signing dependency cannot restore its vulnerable legacy version.