Changelog
Even death stars have an exhaust vent.
Stability W2-01: a passive invariant-alarm monitor that names verified pathologies loudly in the runtime-health log instead of letting them loop silently.
Features
- Invariant-alarm monitor (stability W2-01): watches the runtime-health event stream and raises named invariant_alarm records with a runbook string when a verified pathology signature trips , cloud_loop (idle cloud upload loop), scrape_zero_persist, preflight_kill, watchdog_thrash, and an auth_zombie heuristic
Fixes
- Release-note validation relaxed for production carry-forward, feature consolidation, and support omissions
Follow-ups
- Alarms are observation-only this build; their circuit breakers land next, one per soak cycle, so each alarm first observes its pathology as a positive control
Builds:v26.7.701-devDev
v26.7.700Latest
Map controls, clipboard capture, and stronger sync diagnostics
Features
- Map now has a lower-left time range slider with all-time, today, and last-week shortcuts.
- Freed Desktop adds a clipboard save shortcut and moves activity monitoring into the top toolbar.
- Installed sync soaks now produce structured runtime-health evidence with loop counters and window recovery records.
Fixes
- Provider scrape recovery now records memory pressure, zero-post failures, and safe local next actions without adding provider traffic.
- Instagram, Facebook, LinkedIn, and X diagnostics now separate local stalls from provider failures more clearly.
- Map presets, graph pins, and content-detail saves now wait for durable state before reloads.
- Production validation now catches real performance regressions and uses the pinned Node toolchain on runners.
Follow-ups
- Capture release checks now use a shared provider-safety path list and require recorded owner approval before higher-risk capture changes publish.
- Soak and automation state now lives under Freed automation storage with machine-readable verdicts.
- Freed Desktop provider sync soaks now avoid duplicate traffic and record when LinkedIn returns zero posts.
Builds:v26.7.700
PRs:#746#793#795#796#797#799#801#804#806#809#810#811#812#818#819#820#823#826#829#830#831#832#836#840#841#842#843#844#845#846#847#848#849#850#851#852#854#855#856#857#858#859#860#861#862#863#864#865#866#867#868#869#870#871#872#873#874#875#876#877#878#879#880#881#882#883#884#885#886#887#888#889#890#891#892#893#894#895#897#899#903#904#905#906#908#909#910#911#912#913#914#918#921#923#925
Stability-instrumentation build: structured window-kill records, sync and worker loop counters, and daily runtime-health rotation to baseline the stability program's first overnight soak
Features
- Structured window_destroyed kill records: every watchdog window teardown now logs a structured runtime-health record with the destruction reason (stability P0-02)
- Loop counters for cloud uploads (including uploads with unchanged heads), relay broadcasts, Automerge worker INITs, and scrape outcomes (stability P0-03)
- Daily runtime-health rotation replacing the 5 MiB halving cap, so long soaks keep a full evidence window (stability P0-04)
Fixes
- Runtime-health rotation now compiles on Linux (libc scoped to all unix targets)
- The CI perf regression gate now fails on real regressions instead of always passing
- Runtime-health is mirrored into the active soak directory so rotation cannot shrink soak evidence
- Bounded social loop diagnostics parsing
- Map time presets refined; content details save in the background
Follow-ups
- Soak collector and soak-assert scripts with a machine-readable verdict
- scripts/doctor.mjs machine preflight for loops and worktree helpers
- Automation loop state moved out of /tmp into ~/.freed/automation, with merge outcomes auto-recorded
- Single-source provider-visible path list with publish-time enforcement (W1-06)
- worktree-publish --ready closeout flag so finished PRs leave draft
Social scraping now has stronger memory recovery diagnostics, local loop locking, and zero-post failure reporting, with graph pin release validation stabilized
Features
- Map time range slider
Fixes
- Social scrape memory preflight now records recovery state and avoids treating stale local memory deferrals as durable provider failures
- Facebook, Instagram, LinkedIn, and X scrape diagnostics now rank safe local next actions without increasing provider-visible traffic
- Instagram zero-post failures now surface in the local optimization loop even when runtime diagnostics are sparse
- Graph pin release validation now waits for Automerge persistence before reloading
- Worktree creation now sources the shared Node tooling helpers before running its preflight
- Release validation now removes a stale Azure CLI apt source before installing Playwright browser dependencies on GitHub-hosted Ubuntu runners
Social sync memory cleanup now runs after failed provider scrapes
Fixes
- Run post-sync memory cleanup after Instagram placeholder-feed failures
- Recover reclaimable WebKit memory tails after social scrapes before later providers stall
- Report LinkedIn zero-event scrapes as IPC timeouts instead of successful empty feeds