Skip to main content

Updates

Even death stars have an exhaust vent.

RoadmapSee what we're building

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.

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

Freed Desktop keeps locked installed sync soaks quiet and avoids waking WebKit while waiting for the workstation to unlock.

Fixes

  • Destroy and rebuild the main WebView when idle WebKit memory is reclaimable but still resident.
  • Recover visible main-renderer WebKit resident tails once they cross the high-memory threshold.
  • Ignore stale age-matched WebKit process telemetry after a rebuild, which prevents repeated recovery loops and unnecessary background safe mode.
  • Record post-recovery memory verification so failed WebKit reclaim can be diagnosed from the health log.
  • Restart Freed Desktop when a renderer rebuild leaves the same main WebKit process above the high-memory line.
  • Keep post-scrape reclaimable WebKit resident-tail cleanup below the high-memory threshold from rebuilding the main renderer, so Instagram and LinkedIn retries do not trip recovery backoff while memory is still under budget.
  • Prevent the installed sync trigger helper from requeueing Instagram or LinkedIn during provider-safe cooldown windows.
  • Stop the native trigger watcher from replaying a request when the renderer rebuild happens after the provider run already finished.
  • Fail LinkedIn zero-post runs with local DOM diagnostics for candidate counts, activity URNs, login chrome, feed containers, and URL instead of treating them as successful empty syncs.
  • Slow locked-machine terminal sync trigger retries to 10 minutes, with an explicit long-soak timeout override for unattended testing.
  • Short-circuit locked-machine terminal sync triggers in native code before waking the main renderer, so locked soak retries do not inflate WebKit memory.