Release Notes

Fishwrap is evolving from a personal script into a robust “Anti-Feed” platform. Here is the history of that evolution.


v1.3.3 (The Synchronization) - Dec 14, 2025

A maintenance release to synchronize documentation updates and ensure all downstream artifacts are built from the latest stable baseline.

📚 Documentation

  • Blog Vol 5: Added “The Release” (Release Engineering Case Study).
  • Runbook Refinements: Clarified the separation of concerns between Engine and Product in deployment documentation.

v1.3.2 (The Chronos Update) - Dec 13, 2025

A feature release enabling high-precision publication metadata.

🚀 New Features

  • Publication Timestamp: The engine now injects the precise generation time (e.g., 08:00 AM PST) into the template context (time_str). This reinforces the “Snapshot in Time” philosophy of the Anti-Feed.
  • Forward Compatibility: Themes have been updated to conditionally render this timestamp, ensuring smooth upgrades.

v1.3.1 (The Polish) - Dec 13, 2025

A maintenance release focused on UI refinement, build stability, and release engineering.

🐛 Bug Fixes & Polish

  • Transparency UI: Fixed the “Tab Flashing” bug in the Glass Box modal and enforced high-contrast text colors for readability.
  • Visuals: Updated the “Bubble” score badges to have fixed widths for better alignment.
  • Data Clarity: Renamed “Signal Delta” to “Delta” and reordered the “Source Efficiency” table (Input → Output → Delta) for better logical flow.
  • Footer: Replaced the text-based version string with a clean GitHub icon + version badge (e.g., v1.3.1).

🛠️ Release Engineering

  • Automated Release Script: Introduced scripts/release.sh to automate the version bump, build verification, and tagging process.
  • Test Gate: The release pipeline now enforces a make test pass, running the full unit test suite before allowing a release.
  • Build Hardening: Updated Makefile to suppress legacy SyntaxWarning noise and use a robust install_venv.sh script for environment setup.
  • Runbook: Published docs/RELEASING.md as the definitive guide for shipping new versions.

v1.3.0 (Digital Origami) - Dec 13, 2025

This release focuses on Experience and Stability. We polished the “Glass Box” UI, overhauled the documentation identity, and hardened the build system to survive bleeding-edge environments (Python 3.14).

🎨 UX & Branding

  • Tabbed Transparency UI: The “Glass Box” modal now features a clean, tabbed interface separating “Vitals” (The Funnel), “Sources” (Efficiency), and “The Bubble” (Cut-Line).
  • Digital Origami: Rolled out the new brand identity across the documentation.
  • Sidebar Restoration: Fixed a regression in the demo themes where the sidebar navigation was lost.

📚 Documentation

  • The Architect’s Log: Reorganized the engineering docs into a proper blog structure.
  • Brand Bible: Added comprehensive brand guidelines and GenAI prompts for assets.

🛡️ Engineering

  • Robust Build System: Updated Makefile to explicitly handle shell environments (bash) and simplify dependency installation (install_venv.sh), fixing deployment issues on modern macOS.
  • Dependencies: Cleaned up the dependency tree, reverting the experimental Pydantic refactor to maintain compatibility with Python 3.14.

v1.2.0 (The Glass Box) - Dec 12, 2025

This release marks the transition from “Script” to “System.” We realized that speed wasn’t enough; we needed Trust. We rebuilt the engine to be auditable, persistent, and transparent.

🏛️ The Architecture

  • SQLite Migration: We moved from atomic JSON files to a robust SQLite backend (fishwrap.db). This enables long-term history (“The Chronicle”) and prevents data corruption during concurrent fetches.
  • The Auditor: A new forensic module that runs after every edition. It generates a Transparency Report (transparency.html) that proves the algorithm isn’t just a mirror of the most popular links.
  • Anti-Feed Metrics: We introduced the “Anti-Feed Protection” score (Yield Rate) and “Source Efficiency” metrics to quantify how much noise we filter out.

🔭 Observability

  • The HUD: New console reporting for “Cut-Line” stories (what almost made it) and “Drift” (when a story is forced into a different section).
  • Database CLI: Introduced fw-db, a command-line tool for managing the newsroom database (status, prune, vacuum).

📚 Documentation

  • The Architect’s Log: Launched the engineering blog with case studies on Algorithms, Concurrency, and Consistency.
  • Brand Identity: Established the “Digital Origami” design language.

v1.1.0 (The Parallel Press) - Dec 12, 2025

The “Speed” update. We realized our sequential processing was too slow for the scale of the web. We broke the single-lane highway and built a ten-lane freeway.

⚡ Performance

  • Concurrency: Implemented ThreadPoolExecutor for the Fetcher and Enhancer. Pipeline runtime dropped from ~51s to ~15s (3.5x speedup).
  • Rate Limiting: We flew too close to the sun and DDoS’d Reddit. We implemented Token Bucket rate limiting to be polite citizens of the open web.

🧠 Logic

  • The “Memento” Fix: Solved a critical bug where the engine would forget scraped text every hour. We now merge new data with existing cache, ensuring 100% cache hit rates on subsequent runs.
  • The Jaccard Hatchet: Optimized deduplication from O(N²) to effective O(N) by pre-filtering candidates with Set Intersection before running expensive fuzzy matching.

v1.0.0 (The Foundation) - Dec 11, 2025

The initial release. A proof-of-concept that a Python script could replace a doomscroll.

  • Core Engine: The four-stage pipeline (Fetcher -> Editor -> Enhancer -> Printer).
  • JSON Storage: Simple file-based persistence (articles_db.json).
  • Basic Output: Generation of a static HTML edition and a rudimentary PDF.

Pre-History (The Prototype Era)

Before v1.0, we were figuring out what we were actually building.

v0.9.0 (The Fleet) - Dec 10, 2025

Theme: “Verticalization.” We proved the platform thesis by launching specific verticals.

  • The Zero Day: A cybersecurity-focused briefing.
  • The Hallucination: An AI research briefing.
  • This proved Fishwrap wasn’t just a news reader; it was a generic engine for any stream of information.

v0.3.0 (The Schism) - Dec 9, 2025

Theme: “Separation of Concerns.”

  • We extracted the “Engine” (fishwrap) from the “Product” (dailyclamour.com).
  • This architecture allowed us to treat the Daily Clamour as just one instance of the Fishwrap technology.

v0.2.0 (The Identity) - Dec 8, 2025

Theme: “Ink & Grit.”

  • Established the “Vintage” aesthetic.
  • Introduced “Scoop the Pearl” as the mascot.
  • Moved from a generic HTML list to the “Bento Grid” layout.

v0.1.0 (The Seed) - Dec 07, 2025

Theme: “The Genesis.”

  • The very first commit of the Fishwrap project. A simple script to fetch, process, and print basic news headlines.
  • This was the day the “Anti-Feed” began.

Fishwrap is open source software licensed under the Apache License 2.0.