Releases: scottconverse/TownReporter
Release list
TownReporter 0.6.34 beta
TownReporter 0.6.34 beta
This beta corrects how Dark Desk chooses and presents captured evidence to its two bounded model stages. The Nelson Road investigation had already captured the applicable official City PDF, but newest-12 and first-1,600-character truncation omitted the record from the evidence pack. A first correction surfaced the right record but reordered fragments, allowing an applicant from the preceding table row to be misattributed.
Dark Desk now ranks eligible records across the full captured inventory, deduplicates captured versions before its eight-record limit, and transfers bodies only for the selected records. Empty-focus requests retain readable evidence. When a relevant complete stored PDF page fits, the prompts preserve it once in source order; otherwise they retain a contiguous matching neighborhood. The same selection feeds separately bounded inputs: 28,000 characters for stage-one synthesis and 22,000 for the final brief. The four separate verification-gate calls are unchanged.
Focused preserved-data proof produced a 23,077/28,000-character synthesis input and 20,303/22,000-character brief input with the complete relevant page once and the correct applicant tail. Fourteen focused tests passed. In the final accepted application check, one Codex Terra rewrite completed in 19.157 seconds with no fallback. The brief correctly named Doug / Connection Church Longmont, retained the project ID, 8979 Nelson Road, approximate acreage, proposed MU-E zoning, and unchanged religious use, and left project-specific service and tax effects unestablished. It contained neither Founders Block nor Mark Sullivan. No dig, search, handoff, publication, or second model call occurred.
This bounded result does not establish exhaustive retrieval, universal model accuracy, independent corroboration, completed historical replay, Halo deployment, or measured normal-day performance. See the attached municipal-record and Audit Lite receipts for the failed candidates, exact evidence, final acceptance, and proof limits.
Exact source: b097d288d9237be225bc6ed56851078ad064d208. Application CI passed 14/14; npm test: script runner 342/333/0/9; TypeScript runner 1,615/1,570/0/45; combined 1,957 total, 1,903 passed, zero failed, 54 skipped. Windows package/install passed 2/2, and Pages succeeded. ZIP: 7,128,234 bytes; SHA-256 db56f79f788a0770b80170dc2aa05832922bd0b2ebd6512d832fec473f801c03.
TownReporter 0.6.33 beta
Known issue identified after release: Dark Desk can omit relevant captured records from synthesis and the editor brief. The Nelson annexation PDF was successfully captured but excluded by newest-only selection and head-only excerpts. This evidence-selection and adjacent-record attribution issue is corrected in v0.6.34; this dated v0.6.33 release remains unchanged. The attached investigation report also corrects capture counts that mistakenly treated changed records as failed fetches.
TownReporter 0.6.33 beta
This beta fixes native Codex drafting in extracted Windows installations. Codex CLI 0.145 refuses a non-Git working directory unless its documented --skip-git-repo-check option is supplied; TownReporter now supplies that option while preserving the selected sandbox, approval mode, user configuration, authentication, model, prompt transport, web search, and image arguments.
Focused proof includes a native non-Git RED/GREEN probe: the previous invocation refused, while the corrected invocation returned successfully in 17.9 seconds. All five bounded patched-application investigation runs completed from the Git source checkout; none created a handoff or publication. See the five-investigation receipt. These results establish launch and workflow execution only. They do not establish investigative accuracy, independently corroborated findings, completion of the September 3–8 historical replay, Halo deployment, or measured normal-day performance.
The release retains the 0.6.32 evidence-review presentation fixes and prior beta functionality. See docs/HALO-UPDATE-0.6.33.md for the Halo-local staging and promotion procedure after publication.
A separate bounded budget exercise produced two protocol-verified labels. In TownReporter, that label means the documented verification protocol completed; it does not mean two findings were independently fact-checked or corroborated. Human review remains required.
Exact source: 62ae453f595fafb0157c6b681efef302bbab9e53. Application CI passed 14/14 and Windows package/install passed 2/2. Across the aggregate test evidence: 1,953 total, 1,899 passed, zero failed, 54 explicitly skipped (npm script layer 342/333/9; TypeScript test layer 1,611/1,566/45). The Windows ZIP is 7,116,904 bytes with SHA-256 0ad28695ac43114eb962dceca0245f5aabc6be0f6cda41cf645cdb24bcc9f482. Halo-local 0.6.33 prompt.
Published Windows ZIP verification succeeded in 14m01s after downloading and verifying the published assets, installing the private Windows runtime, exercising the browser workflow and restart persistence, checking ownership/credential ACL/lifecycle contracts, and stopping the owned installation.
TownReporter 0.6.32 beta — evidence review polish
Known beta issue found in live-model evaluation: named Codex providers can refuse to start from an unpacked, non-Git installation. The adapter in this release omits Codex's documented non-Git execution option, and the Windows installation checks did not exercise a live writing account. This compatibility issue is corrected in v0.6.33; this dated v0.6.32 release remains unchanged.
TownReporter 0.6.32 beta packages the completed evidence-review polish. One available captured version appears once while retaining its artifact and capture-event identities; singular claim counts read correctly; manually selected records are clearly distinguished from draft citations; release headings use a single working link.
README, manuals, landing page, TODO and the development handoff are reconciled. The repository includes the Halo-local update prompt. The operator resolves release identity from this release, stages against a verified copy of Halo's data, and promotes only the accepted revision. This GitHub release does not deploy Halo or enable additional automatic publication.
This remains a beta. Stable Windows acquisition remains v0.6.30. The 60-minute editorial target, useful daily coverage and investigative accuracy are distinct acceptance questions; passing automated installation checks does not prove them.
Exact tag/package source: 592bfb16ce8104c67b0a9874c653751b15968105 (PR38 merge). All 16 application/package checks passed on this revision, plus GitHub Pages deployment. Application CI: 1,953 tests total, 1,899 passed, zero failed, 54 explicitly skipped. Windows packaged installation passed using the archive below. The separate real-PostgreSQL job passed.
The 54 aggregate skips are 44 opt-in PostgreSQL tests, six Windows/PowerShell tests, two build-dependent tests, one authenticated repository-setting check, and one opt-in live-model evaluation. Separate PostgreSQL, Windows and built-browser jobs cover their applicable paths; the repository-setting check and live-model evaluation were not run in CI.
Windows ZIP: TownReporter-0.6.32-windows-x64.zip, 7,112,424 bytes.
SHA-256: 56534d4fdfa50fd52788e3fc523e303a8b8c90fdf33c11b00746e1fab5d84339.
The JSON manifest binds this archive to the exact tag source. The archive was downloaded from the successful exact-source Windows workflow and independently hash-checked before publication.
Published assets were downloaded again and all three matched the tested package byte for byte. Published Windows ZIP verification passed: job 102089932990 took 13m04s and covered installation, browser workflow, stale-build refusal, restart persistence, ownership/ACL/lifecycle checks and a clean stop. This automated journey does not call a live writing model.
Historical replay remains incomplete: September 3–6 source packets were unavailable; one genuine September 7 Library capture was recovered, but the attempted replay worker did not start; September 8 was not run. See the attached historical-replay.md receipt. No six-day replay pass, useful-output result or editor-time result is claimed. Investigation evaluation is reported separately.
TownReporter 0.6.31 beta
TownReporter 0.6.31 beta
TownReporter 0.6.31 is a beta prerelease from source 58f5760704d45dce972814976ab07c6f7f76d6d8. PR36 passed all 16 checks and merged as 6f1ca348847609281c2d4772623a695535104cb4. This GitHub release does not deploy the paper on Halo.
What is included
- Community focus: The Queue keeps the full lead set and offers an optional focus on 3–5 existing eligible leads. The editor keeps manual control and reviews evidence before drafting.
- Claim-level review: PR33 and PR34 add private editor judgments against captured evidence and bind them to the saved draft. This is review support, not exhaustive claim coverage or independent fact-checking.
- Approved notice roundups: Six owner-approved families cover library, recreation, community and arts events, registration deadlines, waste and recycling, and public-meeting logistics. Each source and format requires explicit owner approval; ambiguous or unsupported material is refused or held for review.
- Routine editions: Approved sources can feed Today in town, This weekend, and Deadlines approaching through fixed templates and public source links. The scheduler runs daily, not continuously. An approved source change can correct an automation-owned edition on a same-day rerun.
Install
Download the beta Windows ZIP from the 0.6.31 release asset. Extract it, open Install TownReporter.cmd, create the owner account, and configure AI with Configure AI.cmd or a supported signed-in CLI/local endpoint. The stable Windows release remains 0.6.30.
The installer provisions private Node/PostgreSQL runtimes, persistent storage and Chromium, and checks local HTTP readiness. It does not configure Halo, a public tunnel, or a paid provider fallback.
Limits and acceptance
Daily scans allow up to 12 accepted sources with one scheduled run per newsroom day. Draft batches contain 1–5 leads with existing rate and per-lead job protections. Routine editions use at most five useful logistics items and publish no empty edition. The 60-minute editor-work and 3–5-useful-item figures are acceptance targets, not guarantees.
Existing subscription tools and local runtimes are supported. Ordinary reporting remains human-reviewed and human-published; automatic publication is limited to the approved notice families after eligibility, evidence, conflict, history and idempotency checks. Broader community coverage and field acceptance remain open. Five real Dark Desk investigations remain a Halo-local exercise. No new metered paid fallback is enabled.
Receipts
- PR36: all 16 checks green, head
58f5760. - Application CI: run 34209082147: scripts: 342 total, 333 passed, 0 failed, 9 skipped; TypeScript: 1,609 total, 1,564 passed, 0 failed, 45 skipped; combined: 1,951 total, 1,897 passed, 0 failed, 54 skipped.
- Windows CI: run 34209082139 green.
- Merge:
6f1ca348847609281c2d4772623a695535104cb4. - Beta ZIP: TownReporter-0.6.31-windows-x64.zip, 7,120,307 bytes, SHA-256
3171479a4cd7b5d9325518ad6a27d2550e559b87c17e48fcaebd764a03899c81. - Local packaged acceptance: PASS with Ollama
gemma4:12b: supplied-only draft, human body edit, explicit keep-evidence decision, confirmed publish, Stop/Start, and anonymous article persistence. Two additional quality samples were not run. This does not prove 3–5 useful items per day, 60-minute editor time, or a model-duration benchmark; no such performance claim is made.
Documentation/version checks passed before the final source-copy integration: versions-agree 1/1, scoped ESLint passed, and git diff --check passed.
The 54 aggregate skips comprise 44 opt-in real-PostgreSQL tests (covered by the separate green PostgreSQL job), six Windows/PowerShell-only checks, two build-dependent checks, one authenticated GitHub security-setting check and one opt-in live-model evaluation. Separate Windows/build jobs passed; the authenticated repository-setting check and live-model evaluation were not run in CI. The local-model editorial exercise above is separate evidence.
Published Windows verification also passed: run 34213268197 downloaded this release's assets and completed installation, browser, restart persistence, stale-build refusal, ownership and credential ACL checks in an 11m38s job. This fresh Windows exercise uses a manual article with AI disabled; the real local-model editorial exercise above is separate. All three downloaded release assets matched the tested package byte for byte.
TownReporter 0.6.30
TownReporter 0.6.30 adds editor-controlled workflow improvements for small newsrooms.
- Select up to five eligible queue leads and draft them as one batch with an explicit local, Claude Code, Codex Terra, or Codex Sol runtime. Each result stays separate for editor review, and batching never publishes a story.
- Review newspaper-section changes before saving them, including reporting guidance and accepted source names and URLs. Going back or encountering a refused save preserves the unsaved edits.
- Owners can prepare, pause, replace, audit, and revoke exact routine-notice source-and-format permissions.
- Owners can manually check approved library, parks/recreation, and community/arts sources for supported Schema.org Event data. The captured HTML and structural results stay private and create no monitor, lead, draft, article, scheduled work, or publication. Unsupported formats and ambiguous input are refused explicitly.
Routine-notice results are structural candidates only. They do not establish truth, authority, completeness, eligibility, or publication readiness. Automatic notice publication is still being developed. This release makes no Halo claim.
The release is bound to commit 5e4e1d8cd9a73eb1d25393947ec434752ca56105. The downloadable ZIP, JSON manifest, and SHA-256 sidecar were generated from that exact source. Independent candidate verification matched all 791 tracked blobs with zero missing, extra, or mismatched files. The exact source passed all 14 application CI jobs, including 1,567 aggregate tests (1,523 passed, 44 skipped, 0 failed), and both Windows package/install checks.
TownReporter 0.6.29 — scheduled discovery and evidence review
Changes
- Owners can configure a disabled-by-default daily scan of up to 12 accepted sources using one selected local model or existing Claude/Codex subscription. Reservations and result writes are fenced against duplicate work, stale settings and lost permission. It files leads only; it does not draft or publish.
- Draft jobs now commit the draft, lead status and notes, audit event and job completion atomically. Lost claims and withdrawn permission stop stale final writes, and terminal bookkeeping cannot turn completed work into a failure.
- Multi-source drafts preserve complete structured provenance, findings and unanswered questions through saving and publication instead of truncating JSON.
- The story workbench can review recorded findings against private captured passages and save explicit editor judgments. Stale draft or evidence views refuse saves; public evidence routes remain scoped to the public newsroom and exact published references.
- Draft reporting keeps the originating newsroom's paper identity, captures and provenance. Mismatched and foreign capture/version references are excluded.
Install
Download TownReporter-0.6.29-windows-x64.zip, extract it, and open Install TownReporter.cmd. See the Windows installation guide. Windows x64 is the packaged platform; macOS/Linux source setup remains documented. The ZIP contains source and the installer, which downloads its private runtime dependencies during installation.
Source: af6e78e9862f82b3ba84b8c7b5520ba101da128c.
ZIP: 6,969,637 bytes (6.97 MB).
SHA-256: ec6dadda0149bb021401488735f44636cb5e5faeae4d6005e003a454c9366ea2.
Verification and scope
The reviewed source passed all application CI jobs, both Windows package/install checks, and Pages publication. The candidate archive matched all 763 tracked blobs at the exact source commit; its manifest and checksum sidecar matched the archive.
The evidence-review audit disclosed degraded reviewer independence and retained two Minor findings and one Nit as nonblocking watchlist items. This release does not claim exhaustive claim coverage, independent fact-checking, automatic publication, measured 60-minute daily operation, a universal sub-hour installation, or Halo deployment.
TownReporter 0.6.28 — correction ownership and Reddit pacing
Changes
- Corrections can attach only to a published article in the editor's own newsroom. Missing, unpublished and foreign targets refuse before correction or audit writes.
- Reddit requests retain their strict eight-second elapsed-time spacing and one-request-at-a-time queue across clock adjustments and transport setup. Existing routing and 429 slowdown remain.
Install
Download TownReporter-0.6.28-windows-x64.zip, extract it, and open Install TownReporter.cmd. See the Windows installation guide. Windows x64 is the packaged platform; macOS/Linux source setup remains documented. The ZIP contains source and the installer, which downloads its private runtime dependencies during installation.
Source: 2d4e84ae1bb6a21acb605c2a2b3f855a250716c2.
ZIP: 6,903,595 bytes (6.90 MB).
SHA-256: 33ab2b1ab31933567487e9b62b420c7e6baf91af40fa89bf194072f488a2eca6.
Verification and scope
The reviewed PR candidate passed all 14 application CI jobs and both Windows checks: 1,701 tests passed, zero failed and 46 explicitly skipped. The correction authorization and Reddit timing tests have independently witnessed failing mutations and restored passing runs. Reddit tests use mocked transport, not live Reddit.
Daily scheduled scanning and automatic publication are not included. This is a GitHub software release; Halo staging and production promotion remain separate local-operator actions.
The merged source passed all 14 application CI jobs and both Windows package/install checks. Its test phases again total 1,701 passed, zero failed and 46 explicit skips. The Windows check installs the exact ZIP on a fresh Windows runner, exercises the persistent local newsroom with AI disabled, and passes all five native installation contracts. This does not establish reporting quality or a universal installation-plus-AI-setup time.
TownReporter 0.6.27 — Windows installation and local-test fixes
TownReporter 0.6.27 — Windows installation and local-test fixes
Download the Windows x64 ZIP below, extract it completely, and run Install TownReporter.cmd. The package installs private pinned Node and PostgreSQL runtimes, browser retrieval support, persistent data and owned start/stop controls. It does not install a global service or expose the newspaper to the internet. An already usable AI provider is a separate prerequisite. macOS/Linux source setup remains available.
Download Windows x64 ZIP · SHA256 checksum · Windows installation guide · Source setup
Fixed
- Server maintenance and restart target only this installation. Startup checks actual HTTP/database readiness and refuses stale source or compiled output.
- Supplied-material drafting is explicit and preserved across jobs/retries. Edited reporting bodies require evidence review before publication, including the alternate Opinion path; obsolete public evidence can be removed while retaining private history.
- Trailing-slash-only page redirects no longer masquerade as moved pages. Unchanged captures no longer create Changed cards.
- Investigative prompts use the configured town/county. Reddit checks require an accepted subreddit source in that newsroom instead of assuming Longmont.
- Windows port preflight catches both occupied ports and OS bind refusal. New database default is 15432; existing saved ports stay unchanged. Hidden AppData directories are supported without permitting junctions.
Verification and limits
Source/tag target: 7421e7e. This is the exact merge commit packaged and tested by the release checks.
Application CI: 14/14 jobs passed. npm test: 1,697 passed, zero failed, 46 explicitly skipped; typecheck, lint and builds passed. The 46 skips are environment/opt-in exclusions in the standard suite, not counted as passes; dedicated real-PostgreSQL and browser jobs passed separately. Pre-existing lint warnings remain.
Windows ZIP: 6,895,604 bytes, SHA256 afe61f51b525cc000c14775614535c7fe7ce2b5e42b320040ca180aa9311b9a1. The ZIP and both sidecars are the actual CI artifacts; they were not repackaged for release.
Fresh Windows installation, manual publishing, restart persistence and native contracts completed in 680.53 seconds (11 minutes 20 seconds). All five native checks passed, zero failed or skipped. Fresh Windows evidence.
Fresh Windows automation disables AI and exercises prerequisite downloads, first-owner setup, manual article publication, stale-build refusal, idempotent stop/start, fresh sign-in and persistent data. It runs on a clean GitHub Windows Server 2025 runner using the package's private runtimes. Windows 11 was additionally exercised on the travel machine, including actual Claude supplied-material drafting (51 seconds with an already available provider), evidence review, real page captures, and owned restart. These results do not measure first-time AI account creation or a fresh-machine real source scan; under an hour remains a conditional installation target, not a guarantee for every machine, connection or model.
This is a GitHub software release. Halo production was not accessed or promoted. The owner directs a Halo-local operator separately.
Published-download acceptance passed: the actual release ZIP and sidecars were downloaded and verified, then installed on a fresh Windows runner. First-owner setup, manual publication, stale-build refusal, restart persistence and all five native checks passed in 838.71 seconds (13 minutes 59 seconds). Published-asset run. Main-commit application CI also passed all 14 jobs with the same test totals. The public ZIP was additionally rebuilt on the existing Windows 11 test installation; the saved editor session and published test article survived. This closes the bounded installation release checks; the AI and platform limits above still apply.
TownReporter 0.6.26 — legal removal and investigative settings
This completes the approved remote implementation queue with owner-only legal removal and saved investigative settings, building on the Dark Desk corrections in 0.6.24 and configurable sections/manual page watching in 0.6.25.
Legal removal is separate from ordinary Trash. It previews linked and historical copies, records a case, and supports an access-controlled copy for 12 calendar months or explicit destruction that never inserts removed text into retained storage. Known captured copies require operator resolution; foreign-room references refuse unsafe cascades. Normalized URLs, late writes and restores are guarded. Backup records are operator attestations, not independently verified erasure.
Dark Desk saves inclusive UTC search dates and a 1–24 signal verification limit. One per-round snapshot governs discovery, synthesis, verification and failover. The editor sees attempted, verified, failed and deferred work against the full eligible count. Search dates remain hints, not guaranteed factual-date filtering.
README, manuals, setup, landing, canonical TODO, current handoff and version fields are reconciled. Historical design decisions are marked as such, and deployment receipts retain their attribution. Fable Direction A remains the design foundation. Migrations 0047–0048; no dependency changes.
Source: 00367ea27db07f445f40c97a06f023e5d41d9485 (PRs #10–11). Exact-main CI34107538179 passed all 14 jobs, including real Postgres and browser workflows. Source tests: 1,321 passed, 36 skipped, 0 failed. Script tests: 329 passed, 4 skipped, 0 failed. Typecheck and build passed; lint has zero errors and 12 inherited warnings.
Validation includes independently reproduced legal-removal defects and correction probes, settings snapshot/date controls, compiled local editor journeys with PGLite and blocked external transports, normal/encoded removed-URL readbacks, and a real-Postgres foreign-FK race test. Retention is owner access control, not encryption. Captured-copy cleanup, historical records and external backups have explicit limits.
Merged to main, CI green, ready for the Halo-local operator to stage and promote when the owner directs it. This GitHub source release is not a production deployment. Five real investigations (three additional owner topics still needed), real-data acceptance, historical-record review and actual backup cleanup remain external. No Halo production scripts, database or backups were accessed from this travel machine.
TownReporter 0.6.25 — sections and page watching
The paper's sections are now owner-configurable: add, rename, reorder, hide and retire them, with reporting briefs, accepted-source assignments and scan instructions. A preview shows the impact before applying changes. Retirement preserves article addresses and explicitly reassigns stories; late writes resolve retired section keys in the correct newsroom. Queued scans keep the section guidance and source selection they were given.
Dark Desk now has a distinct Watch a page workflow. It keeps dated captures, reports first reads and changes, and distinguishes blocked, failed and unreadable checks. Pause/resume/stop preserve history. The editor can download captured text, attach it to an investigation, dismiss a change, or explicitly create an unverified lead in a selected section. Checks do not automatically create leads or publish. Attached-file links open, scroll to and focus the actual file, including on narrow screens.
Migrations0045 and0046 implement sections and watched-page history. README, manuals, setup instructions, Dark Desk guide, landing page and version fields describe the new workflows; refreshed screenshots are labelled local development examples.
Source: 777077aa5f098ef26b4b1d91fd3cfa675324a685 (PR #9). Exact-main CI34102981794 passed all 14 jobs, including real Postgres and browser workflows. Source tests: 1,288 passed, 35 skipped, 0 failed. Script tests: 329 passed, 4 skipped, 0 failed. Typecheck and build passed; lint has zero errors and 12 inherited warnings.
Validation includes sensitive PGLite/mocked regressions, scoped editor/reader journeys and narrow/Large checks. Final full-suite counts belong to the exact merged commit. Earlier scan-fixture and schema-parity fixture failures were diagnosed and corrected without weakening their assertions.
This is a GitHub source release. Promotion and real-data acceptance require the separate Halo-local operator. No production database, backup, staging or promotion action was performed from this machine. Legal removal and investigative settings continue in the next bounded unit.