Skip to content

Releases: tab0inc/happen-releases

Happen 0.6.0

Choose a tag to compare

@xissy xissy released this 29 Oct 12:53

Happen 0.6.0

Happen now runs on Linux. The same install script sets it up on glibc Linux (x86_64 and arm64) and keeps the server running as a systemd user service. This release also adds happen doctor, groups the thread commands under happen thread, prints CLI results for a person at a terminal, and brings copy links, the machine's live stats, and plainer decision questions with an ELI5 button to the web app. These notes cover every change merged since 0.5.0.

Important: Read Before Upgrading

  • No database migration. 0.6.0 uses the same schema as 0.5.0 (20), so you can go back to 0.5.0 without restoring a backup.
  • The Chief of Staff reloads its rules on its own. Its next happen wait returns rules_updated after the update and the session runs happen skill again.
  • Old command names keep working. happen post, happen threads, happen skip, and the other moved names still run as before; help shows the new names (happen thread new, happen thread list, happen wait skip, …).
  • CLI messages are now English, with errors on two lines (Error: and Next:). Scripts that parse JSON are unaffected: output is JSON whenever stdout is not a terminal, or with --json.

Linux

  • Install: curl -fsSL https://happen.run/install.sh | sh on glibc Linux, x86_64 or arm64. It needs OpenSSL 3 or newer (Ubuntu 22.04+, Debian 12+, RHEL 9+). There is no Linux Homebrew package (#232).
  • Checked before it installs: Linux has no Developer ID, so the script checks the release's signed Linux manifest with the release key built into it (ed25519, via OpenSSL), then the archive's size and SHA-256. This is the same check the server makes before it updates itself (#218, #232).
  • Runs as a systemd user service. happen open (or happen service install) writes happen.service under ~/.config/systemd/user, enables and starts it, and restarts it if it exits. Logs: journalctl --user -u happen.service. The service's PATH includes the folders claude, opencode, git, and tmux are in when you install it (#229, #230).
  • Keep it running after you log out with loginctl enable-linger $USER. Happen tells you when lingering is off but never turns it on.
  • Data lives apart from the binary: ~/.local/state/happen ($XDG_STATE_HOME), so removing the binary keeps your data (#217).
  • Updates work the same as on macOS: happen upgrade, the update button, or automatic updates. A Linux update that does not come back is rolled back (#218).
  • WSL is not verified yet. It should work on WSL2 with systemd turned on; without systemd, start the server with happen serve.

This Mac (and Linux): happen doctor

  • happen doctor checks the install and its version, updates, the config, the server, the service that keeps it running, the database, the agent token, the hooks and /happen in Claude Code and OpenCode, and the Chief of Staff on each channel, and prints the command that fixes each problem. On Linux it also says when lingering is off or the service cannot find a tool (#216, #229, #230).

Command Line

  • Thread commands are grouped under happen thread (new, reply, ask, status, close, delete, attach, show, list), and skip is happen wait skip. Old names still work (#224).
  • Results are laid out for a person at a terminal (aligned rows and colour), and stay one line of JSON for scripts, pipes, and agents (#227).
  • Messages are in English, with a Next: line naming what to run (#225).
  • The CLI finds the server on the port in your config when HAPPEN_URL is not set; before, it always looked at port 4318 (#234).
  • A missing agent token is reported as such ("no agent token … Next: Run happen setup"), not as an unreachable server (#235).

Web App

  • Copy links to channels, messages, and replies (#219).
  • The sidebar shows the machine's real name. Click it for live CPU, memory, disk, and network, and how much of a slow response is the server and how much the network (#223).
  • Back and forward buttons in the installed app window (#222).
  • Plainer decision questions and an ELI5 button. The chip at the end of a question's choices asks the Chief of Staff to ask again in plain words with an example; it does not answer the question. Hide it in Settings → Questions (#220, #226, #231).

Automations

  • Repeat every few minutes within a window, for example every 20 minutes between 09:00 and 19:00 on weekdays (every 5 to 720 minutes) (#221).
  • Later runs reply in the same thread. Every automation (daily, weekdays, weekly, once, or repeating) posts its first run as a new message and each later run as a reply in that thread, which moves to the bottom of the channel. Runs missed while the Mac slept post once, as the most recent run (#221).

Upgrading

Once this release and the Homebrew Formula are published:

happen upgrade

An install-script or Homebrew install on 0.5.0 can also update from the browser (Settings → Version) or automatically when idle.

To install on Linux:

curl -fsSL https://happen.run/install.sh | sh

Happen 0.5.0

Choose a tag to compare

@xissy xissy released this 29 Oct 07:30

Happen 0.5.0

Happen can now update itself, install without Homebrew, and run automations the Chief of Staff proposes and you turn on. The lead role is now called Chief of Staff, happen open sets everything up and starts the server, and /happen or happen start begins a session. Both macOS binaries (Apple silicon and Intel) are signed with the company Developer ID and notarized by Apple. These notes cover every change merged since 0.4.0.

Important: Read Before Upgrading

  • Database migration (schema 17 → 20). The first start of 0.5.0 copies your database to backups/happen-v17-<time>.sqlite beside it (in ~/Library/Application Support/happen/), then migrates it. After that, 0.4.0 cannot open the database: it stops with "the database is at schema 20, newer than this happen knows (17)". See "Going back to 0.4.0" below.
  • Restart each Chief of Staff once. Run /happen <channel> or happen skill --channel <channel> in each session. A session started from 0.5.0 rules is told by its next happen wait when the rules change after a later update (rules_updated), so this is the last manual restart.
  • Upgrading from 0.4.0 goes through Homebrew. 0.4.0 cannot update itself. Use happen upgrade or brew upgrade tab0inc/tap/happen once; from 0.5.0 on, the server can update itself.
  • "Lead" is now "Chief of Staff" in every screen and message. Commands, API fields, and config keys are unchanged.

Updates and Installation

  • Install without Homebrew: curl -fsSL https://happen.run/install.sh | sh. The script checks the checksum, the archive contents, the company Developer ID signature and notarization, and the reported version before it installs to ~/.local/share/happen/happen. happen service install keeps it running as a launchd agent (#198, #203, #206).
  • The server updates itself through the way it was installed (Homebrew or the install script). Every release now carries a signed update manifest; the server accepts only archives signed with the key built into it, and checks size, SHA-256, signature, notarization, and version before switching. An install-script update that does not come back is rolled back automatically (#198, #200, #203).
  • Update from the browser: the update band shows "Version X is available · Update · What's new" and follows the update through to the reconnect. Settings → Version shows the current and latest version and the last result (#189, #191, #192, #197, #201, #205).
  • Automatic updates (optional): Settings → Automatic updates → When idle. The server updates when no work is under way, nothing is waiting for delivery, and you have not posted for 30 minutes (that last condition is skipped between 2 and 5 a.m.). Off by default (#201).
  • The Chief of Staff reloads its rules after an update. Its next happen wait returns a rules_updated notice and the session runs happen skill again, continuing the same work (#204).

Getting Started

  • happen open is the one command after installing. It creates the config, token, and CLI link if missing, starts the server for your install type (brew services or the launchd agent), waits for it, and opens a connection link (#209).
  • /happen [<channel>] in Claude Code and OpenCode, and happen start [<channel>] from a terminal, begin a Chief of Staff session. The entry point only calls the installed happen skill, so it is always current. happen skill also takes the channel as an argument (happen skill decis) (#213).

Automations

  • Automations post your message to a channel at set times (daily, weekdays, weekly, or once). Describe one in your own words from the new Automations page ("Every day at 9, summarize yesterday's deploys"), or let the Chief of Staff propose one. Either way you see what it will do and when on a card, and it turns on only after you choose Turn it on.
  • Each run posts as your own message, so delivery, status, and warnings work as usual, and the Chief of Staff handles it (that uses tokens). Runs missed while the Mac slept post once after it wakes. Each automation keeps its time zone (#214).

Status, Reading, and Messages

  • Unresponsive work: if work under way has been quiet for 30 minutes, the Chief of Staff is woken first. Only if nothing happens within 10 more minutes do you see "Working · unresponsive for N min" in the thread, Home, Activity, and the sidebar (#211).
  • The Chief of Staff now owns any wait a stopped worker left behind (#210).
  • Unread messages: top-level messages from agents count as unread until you see them. Mark another author's message unread from its ⋯ menu (or ⌥-click on desktop) (#199). Existing messages start as read.
  • Work in progress is listed beside the activity inbox, with a new Working filter and count in Activity and the sidebar (#193).
  • Message times read relative to today ("Yesterday 12:05 PM", "Mon 12:05 PM"), with a new Settings → Time format (Auto / 12-hour / 24-hour) (#194).
  • A question's answer appears only inside its card, with the chosen option marked (#208).
  • Thumbnails that fail to load retry on their own (#215).
  • Chrome no longer offers to translate the app, while posts stay translatable (#195).
  • The app icon sits beside the sidebar title (#196).

Upgrading and Data Recovery

Upgrading from 0.4.0

Once this release and the Homebrew Formula are published:

happen upgrade

Or with Homebrew directly:

brew update
brew upgrade tab0inc/tap/happen

A server run by brew services restarts itself onto the new version. Then restart each Chief of Staff with /happen <channel> or happen skill --channel <channel>.

Database

  • Schema 17 → 20 adds read tracking (18), the rules version for each Chief of Staff (19), and automations (20). The backup is taken automatically before migrating; the three newest are kept.
  • To check before switching builds: happen version prints schema 20 (database: N).

Going back to 0.4.0

0.4.0 refuses a schema 20 database, so going back means restoring the backup. Changes made after the upgrade (new posts, reads, automations) are lost.

  1. Stop the server (brew services stop happen, or happen service uninstall for an install-script setup).
  2. In ~/Library/Application Support/happen/, move happen.sqlite, happen.sqlite-wal, and happen.sqlite-shm aside, then copy backups/happen-v17-<time>.sqlite to happen.sqlite.
  3. Install the 0.4.0 executable (brew upgrade does not downgrade; use the 0.4.0 release archive or the earlier Formula) and start it.
  4. Run happen skill again in each session so it gets the 0.4.0 prompt.

Distribution Details

  • Platforms: macOS Apple silicon (arm64) and Intel (amd64).
  • Packaging: a single executable includes the server, CLI, web app, and start prompt. Neither a source checkout nor Bun is required after installation.
  • Files: happen_0.5.0_darwin_arm64.tar.gz, happen_0.5.0_darwin_amd64.tar.gz, happen_0.5.0_checksums.txt, happen_0.5.0_manifest.json, happen_0.5.0_manifest.json.sig, install.sh.
  • The manifest is signed with key id 3b5fc8e8091fd139.
  • Each archive includes the executable, README.md, and LICENSE. Use is subject to the bundled LICENSE.
  • Source revision: tab0inc/happen@88a986d5189e82c7534597bd7b0cf9d65d9f4f7c.
  • Comparison baseline: 24 merged commits since e765b06a5f08b79b6cca88ad1841de63059dd4c1 (0.4.0).

Release Verification

  • Verification run: 40833779126, attempt 1. The artifacts built from the source SHA above are published without rebuilding.
  • Both CPU architectures were signed with the company Developer ID team 66AMT25645 (hardened runtime). Apple notarization returned Accepted for both.
  • On Apple silicon and Intel hardware we checked:
    • the explicit notarization requirement and online ticket lookup
    • 25/25 smoke checks on each architecture
    • restart onto an upgraded Homebrew keg (exit 75)
    • an isolated Homebrew install of these exact archives, service health, and restart by KeepAlive
    • the signed update manifest, and release.ts check with the server's own update code

SHA-256:

50c2b953ed844b1e8b1953863904012ef578f0cc8f691682119ce8d420cf36f0  happen_0.5.0_darwin_arm64.tar.gz
a3e16870986072fa85729870f2075cf8b66eed3663b840fc5ddd1a674a3b7e01  happen_0.5.0_darwin_amd64.tar.gz

Happen 0.4.0

Choose a tag to compare

@xissy xissy released this 28 Oct 13:40

Happen 0.4.0

Happen now speaks English as well as Korean, adds a waiting state for work that depends on something else, and shows what the lead is doing from the moment you post. Both macOS binaries (Apple silicon and Intel) are signed with the company Developer ID and notarized by Apple. They were run natively and checked as Homebrew services. These notes cover every change merged since 0.3.0.

Important: Read Before Upgrading

  • Choose your language once. Open Settings → Language and pick English or Korean. If you never choose, the web follows your browser's language and leads write to you in English. This one choice applies to every device.
  • Restart each lead after upgrading. In each lead session, run happen skill --channel <channel> again so it picks up the new start prompt: your language, the waiting state, and one pending wait per channel. A lead still on the 0.3.0 prompt does not know happen wait's new exit code 4.
  • Claude Code usage-limit hooks: run happen setup claude once to add them. Existing hooks are kept, and nothing is added twice.
  • HTTPS is no longer managed by Happen. The built-in local TLS proxy and DNS credential handling are gone. Use Tailscale Serve (tailscale serve --bg --https=443 http://127.0.0.1:4318) and set publicOrigin to its https://<machine>.<tailnet>.ts.net address. Old proxy and keychainService keys in config.json are ignored.
  • No database migration. The schema stays at 17, so 0.3.0 and 0.4.0 open the same database.

Language

  • Every web screen is available in English and Korean. That includes server errors, push notification titles, and stored status texts such as "Answer received", "Request received", and "Done". Dates and numbers follow the chosen language (#172, #173, #174).
  • The language is stored once by the server (preferences.json beside the config) and applies to every device. Changing it reloads the app.
  • Leads write to you in your chosen language. A running lead switches at its next happen skill (compaction, resume, or new session), never mid-session (#177).
  • English is listed before Korean in the language setting (#187).

Status and Notifications

  • New waiting state ("Waiting on other work"): the work is waiting on another agent, CI, a deploy, or a batch of merges, and there is nothing for you to do. Needs review now means only that you have something to look at. Home, Activity, and the sidebar group the states as Your turn (needs answer, needs review) and in progress (working, waiting) (#167).
  • You get a push notification when a thread moves to review (#183).
  • From the moment you post, the thread shows a working ring in place of the status. It reads "Delivering to " until a wait hands your post to the lead, then " is preparing an answer" (#169, #170, #176).
  • If a Claude Code lead stops at its usage limit, its threads show the reset time, for example Limit · 10/29 23:00. The work is listed as stalled until the lead acts again or the limit resets (#151).
  • Every thread under way is listed on Activity and Home (#150). Lead presence and stalled-work indicators are aligned, and channel connection and count lines are separated (#144, #146).

Home, Reading, and Images

  • The home shows a calendar of finished requests over the last 26 weeks, counted per local day. It sits above the channels and ends on whole weeks (#161, #163, #179, #182).
  • Slack-style keyboard shortcuts, with a help dialog on ⌘/ and a shortcuts card on the home (#171).
  • The image viewer can zoom in and out, and its buttons stay visible over any image (#180, #181).
  • Photos attached to a draft are kept on this device until you send it (#162).
  • While the feed reconnects, Happen keeps loading instead of showing a connection error (#168).
  • On touch screens you can select post text, and tapping a post's ⋯ opens its menu (#164).
  • Original requests in Activity show up to two lines (#142). Search highlights stay readable over the search wash (#143).

Look and Feel

  • Pills and chips are drawn through one component and centred by their ink, without per-font pixel nudges. The body font lists system fonts only (#153, #154, #155, #157, #158, #159, #166).
  • The tab icon matches the app icon, with its dot at the top right (#152). On the Mac, the iOS Home Screen, and Android, the app icon's bubble now fills about 70% of the visible shape. On iOS, remove the app from the Home Screen and add it again to get the new icon (#186, #188).
  • The installed app's title bar follows the light or dark colour scheme (#184).

Server and CLI

  • One pending wait per channel. A new happen wait with the same filter ends the older one at once with 409 wait_superseded, before it can take or mark a post, so a stray wait can no longer swallow your posts. happen wait exits with code 4 in that case and does not restart itself (#178).
  • A device's browser label is refreshed on each request (#185).
  • HTTPS, certificates, DNS, and external proxies are left to external tools (see above) (#147).
  • Lead prompt: the wait timeout is 3300 seconds, leads follow the user's repository instructions, and they clean up every ended task (#148, #149).

Upgrading and Data Recovery

Upgrading from 0.3.0

Once this release and the Homebrew Formula are published, upgrade with:

happen upgrade

Or with Homebrew directly:

brew update
brew upgrade tab0inc/tap/happen

A server run by brew services restarts itself onto the new version. Afterwards, choose your language in Settings, run happen setup claude once, and restart each lead with happen skill --channel <channel>.

Database

  • The schema stays at 17. Nothing is migrated and no automatic backup is taken on upgrade.
  • To go back to 0.3.0, stop the server and install the 0.3.0 executable. It opens the same schema 17 database. brew upgrade does not downgrade, so you need to get the 0.3.0 release executable or the earlier Formula yourself. preferences.json is ignored by 0.3.0, and leads should run happen skill again so they get the matching prompt.

Distribution Details

  • Platforms: macOS Apple silicon (arm64) and Intel (amd64).
  • Packaging: a single executable includes the server, CLI, web app, and start prompt. Neither a source checkout nor Bun is required after installation.
  • Files: happen_0.4.0_darwin_arm64.tar.gz, happen_0.4.0_darwin_amd64.tar.gz, happen_0.4.0_checksums.txt.
  • Each archive includes the executable, README.md, and LICENSE. Use is subject to the bundled LICENSE.
  • Source revision: tab0inc/happen@e765b06a5f08b79b6cca88ad1841de63059dd4c1.
  • Comparison baseline: 43 merged commits since 29553c3c625efa6966f8af24406185ec6aa8925c (0.3.0).

Release Verification

  • Verification run: 40696406569, attempt 1. The artifacts built from the source SHA above are published without rebuilding.
  • Both CPU architectures were signed with the company Developer ID team 66AMT25645 (hardened runtime). Apple notarization returned Accepted for both.
  • On Apple silicon and Intel hardware we checked:
    • the explicit notarization requirement and online ticket lookup
    • 25/25 smoke checks on each architecture
    • restart onto an upgraded Homebrew keg (exit 75)
    • an isolated Homebrew install of these exact archives, service health, and restart by KeepAlive

SHA-256:

d60aad2e78214ac26039a656c2aecc0085b0a880513de5a913c9d6cc0fdc07bf  happen_0.4.0_darwin_arm64.tar.gz
0ad0137c40d4714b6c496dc529575e4b6abad84c5a538535c17b6e80588285d6  happen_0.4.0_darwin_amd64.tar.gz

Happen 0.3.0

Choose a tag to compare

@xissy xissy released this 26 Oct 13:08

Happen 0.3.0

We have completed company Developer ID signing and Apple notarization for both macOS Apple silicon and Intel binaries, along with native execution and Homebrew service verification.

This release improves Happen with OpenCode lead support, lead connection and response-status indicators, channel archiving and permanent deletion, and preservation of your reading position and unsent drafts. These notes cover all changes merged since 0.2.0.

Important: Read Before Upgrading

  • Lead support: Claude Code and OpenCode v2 are supported. Codex support has been removed.
  • Starting a lead: Use happen skill --channel <channel>. The /happen-start skill and happen prompt alias are no longer available.
  • Database migration: On the first server startup after upgrading from 0.2.0, the database schema will migrate from version 13 to 17. Happen creates an automatic backup before migrating, but rolling back requires restoring that backup. Read Upgrading and Data Recovery before proceeding.

Lead Sessions

Lead a channel with OpenCode

OpenCode v2 sessions can now serve as leads for Happen channels. No separate Happen skill installation is required.

Ask the OpenCode model to:

Run happen skill --channel me using the shell tool and follow its instructions exactly.

The OpenCode model must run the command through its shell tool. Running it with ! in the TUI does not provide the session ID required for lead registration.

  • Lead instructions are registered persistently with the session. If the context is compacted, the model is instructed to reread the startup rules.
  • Connection status is based on the background service's session, not whether a TUI window is open. Closing the TUI does not disconnect the lead if its session still exists. Deleting or archiving the session disconnects it.
  • This integration uses OpenCode v2's experimental session-instruction API, so an OpenCode version that exposes this API and a running background service are required.

Improved Claude Code compaction and resume handling

  • Run happen setup claude to install hooks that reread startup rules after context compaction and manage connection indicators on resume or reset.
  • Existing unrelated hooks are preserved, and identical configurations are not added twice.
  • New lead sessions check unfinished threads with happen threads --channel <channel> --open and happen show, then pick up where they left off. Existing open questions are preserved.
  • Startup rules now explicitly prevent a resumed lead from working on requests that the user has deleted.
  • The startup prompt has been reorganized to make priorities clearer, and the instructions explain how to pass multiline messages through the shell. The server, rather than the lead, handles state transitions triggered by user replies. Leads are also informed about warnings when they have not responded for more than three minutes.

See whether a lead is connected

  • A green dot next to a channel's # indicator shows whether a lead is connected.
  • Channels display No lead when none is connected, or N sessions when multiple sessions are attached.
  • Tooltips and screen readers provide the lead type, whether it is waiting for a new message or working, and its last activity time.
  • The Claude Code and OpenCode integrations now use separate adapters, allowing Happen to handle each tool's session, compaction, and connection behavior consistently.

Status and Notifications

  • The server immediately updates the status when a user replies or submits a new request. Replies are marked Reply received and new requests Request received. If an open question remains, the thread stays in Needs reply. If a user answers a remaining question after a thread has completed or failed, its Completed or Failed status is preserved.
  • Status changes now follow a unified set of rules and are recorded in database history. Deleting a user's message reverses the status change it triggered; restoring that message reapplies it. Any intervening status changes made directly by the lead are preserved.
  • If work is in progress but the lead is offline, Happen displays a warning such as Lead offline · Work has stopped. If a user message has gone unanswered for at least three minutes, it displays No response · N minutes. The actual indicator names Claude Code or OpenCode when known, falling back to AI otherwise. These warnings are visually distinct from the orange status that asks the user to reply.
  • The browser tab icon also indicates attention-worthy states: a yellow dot for Needs reply, or a small white dot when there are only unread replies. This works without notification permissions and does not change the installed app's numeric badge or browser tab title.
  • The decorative yellow circle on the default app icon has been removed to prevent confusion with status indicators.

Channels and Message Management

  • You can now archive channels from the channel menu. Messages are retained, but archived channels are excluded from the sidebar, Home, and Search.
  • Archived channels can be opened read-only or restored from Settings. While archived, they cannot accept new messages, replies, or status changes. happen wait for an archived channel exits with code 3.
  • Archived channels can be permanently deleted after you re-enter the channel name for confirmation. From the CLI, use happen channel delete <channel> --confirm <channel>.
  • Permanent deletion removes messages, replies, images, read receipts, status history, lead records, and related data. A deletion tombstone retains the channel name so an existing lead cannot accidentally recreate it. To reuse the name, explicitly create a new channel with happen channel new <channel>.
  • Permanent deletion cannot be undone. However, it does not erase previously created database backups, which may still contain the deleted data.
  • Deleting a top-level message now hides the entire thread from its channel, Activity, Home, Search, and aggregate counts, even if replies remain. No new messages can be posted to that thread until the deletion is undone. Deleting only the top-level message remains distinct from Delete thread, which also deletes its replies.

Reading and Composing

Keep your reading position and drafts

  • When new replies arrive while you are reading older ones, Happen preserves your scroll position.
  • Jump-to-latest arrow buttons are available in channels and threads. In threads, the button also shows the number of unread new replies.
  • The jump-to-latest button has been made less visually prominent, and navigation is now smooth so it does not distract from reading.
  • When you send a reply or scroll to the bottom, Happen resumes following the newest replies. The same behavior applies to mobile document scrolling and desktop panels.
  • Text drafts in channel composers and thread reply fields are saved locally in the browser. You can continue editing in the same composer after navigating away, refreshing, or reopening the page.
  • Drafts are cleared only after a send succeeds or an offline queue write is confirmed. Failed sends and text entered while a message is being sent are preserved.
  • Limitations: Drafts do not sync across devices. Images must be attached again, and direct replies in question cards are not saved as drafts. If browser storage is unavailable, Happen prompts you to copy your text.

Distinguish loading failures from empty results

  • If an initial request fails, Happen shows an error with a Retry action instead of an empty view. Previously loaded content remains visible if a refresh fails, together with an update-failure notice.
  • Home displays channels that loaded successfully and retries only those that failed. Failed requests for additional pages in Activity or Search can be retried independently below the list.
  • Data is fetched again when the connection is restored or the user returns to the view. Read requests have a 15-second timeout that extends through receipt of the response body. Cancelled or late responses cannot overwrite newer content.
  • Refreshes no longer recreate lists or composers, and error messages no longer shift the reader's scroll position.

Activity, Search, and mobile usability improvements

  • Activity is now grouped by status, including Needs reply, Failed, Awaiting review, and In progress. Each item uses a compact two-line layout with its title, channel, and excerpt. A subset of in-progress items is shown initially and can be expanded.
  • The Activity Needs reply and Unread filters now show only threads that actually match the selected filter.
  • Navigation from search results to the corresponding thread is more consistent, and controls in Settings have larger hit areas.
  • A centered activity indicator shows progress while content is loading.
  • The app's root layout has been adjusted so swipe gestures work correctly in iOS Safari.

CLI and Development Environment

  • happen version now reports both the database schema supported by the executable and the schema of the current database. JSON output includes schema and databaseSchema.
  • Development builds append -dev to the Git-derived version and -dirty if tracked files have changed. Development builds do not check for release updates or run happen upgrade.
  • Development instructions now clarify that direnv selects the checkout's bin/happen within the repository, while an installed release is used outside the repository.
  • Homebrew installation documentation and guidance for migrating an operational checkout to Homebrew have been expanded.
  • UI change reviews now require screenshots to be embedded directly in the GitHub pull request description.
  • Regular CI has been streamlined to tests, type chec...
Read more

Happen 0.2.0

Choose a tag to compare

@xissy xissy released this 25 Oct 13:24

Happen 0.2.0

Signed and notarized macOS binaries (Apple silicon and Intel). Use is subject to the LICENSE in each archive.

Source revision: tab0inc/happen@1e8da2124e75a51e27c374254b04d79d00e83c35

Happen 0.1.0

Choose a tag to compare

@xissy xissy released this 25 Oct 12:14

Happen 0.1.0

Signed and notarized macOS binaries (Apple silicon and Intel). Use is subject to the LICENSE in each archive.

Source revision: tab0inc/happen@9e52b6994c157e639918a53777cac61c71b119ff