Skip to content

Repository files navigation

Weft Status

Weft Status is a macOS menu bar companion for Weft. It shows live Weft activity from the local daemon subscription API without reading Weft's SQLite database directly.

The app is a status surface, not a scheduler. Weft remains the source of truth.

Goals

  • Show current Weft state at a glance: running jobs, queued jobs, rental run rate, autopilot state, and unprocessed results.
  • Support project-scoped views for active research work.
  • Surface failure and attention states without requiring a terminal.
  • Keep Weft as the source of truth; this app is a display and notification layer, not a scheduler.

Architecture

Weft daemon subscription API
        |
macOS SwiftUI app

The app subscribes to Weft's daemon activity resource over ~/.cache/weft/daemon.sock, normalizes the daemon payload into the app-facing model in Shared/, and renders that model in the menu bar popover.

SQLite remains an internal Weft implementation detail. This app does not query ~/.config/weft/jobs.db.

Features

  • Menu bar label with compact running, queued, completed-result, and run-rate status.
  • Menu bar popover with live status and job detail from the Weft daemon.
  • Floating HUD toggled from the menu bar, with TUI-style sections for status, jobs, rentals, and recent transitions.
  • Running job rows with project badges; clicking a job copies its wj... ID.
  • Unprocessed completed/failed job details when exposed by the daemon payload.
  • Rental section for cloud/rental instances, with run rate, uptime, and running-job count.
  • Settings window for menu bar identity, HUD behavior, and infrastructure alert thresholds.
  • HUD hotkey, HUD job grouping, and infrastructure alert thresholds are configurable.
  • About window with app metadata.

On-prem hosts can run jobs without appearing in the rental section. The rental section describes cloud/rental launch records only.

Repository Status

This repository contains a pure SwiftPM macOS app:

  • Shared/: the compact app-facing activity model, fixture data, freshness rules, project selection, and priority signal selection.
  • WeftStatusApp/: the SwiftUI menu bar app, daemon client, settings, about window, and rendering surfaces.
  • App/: macOS app bundle metadata and icon source.
  • Checks/: lightweight model checks runnable without XCTest.

Fixture data remains available for development checks. At runtime, unavailable daemon data renders as an explicit no-data or error state.

Development

Build the app:

swift build

Run the app:

swift run WeftStatus

This runs the SwiftPM executable directly. For normal menu bar use, prefer the installed app bundle.

Build a macOS app bundle:

just app

Install it into ~/Applications and launch it:

just install

just install-user remains as a compatibility alias. If the installed app is running, the install recipe stops it before replacing the bundle, then opens the fresh installed app. The default local install is unsigned; use just install-signed when local ad-hoc signature validation is useful.

Reinstall and launch it through the explicit launch alias:

just launch

just launch remains available for callers that expect a launch-named recipe.

Run model checks:

swift run WeftStatusSharedChecks

The same commands are available through just build, just run, and just check.

Settings

Settings open in a separate window from the menu bar popover. Current settings:

  • Menu bar identity: icon, name, or both.
  • HUD hotkey and default HUD job grouping.
  • Infrastructure alert thresholds for low credit runway and overnight runway.

About

macOS menu bar companion for Weft status

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages