Skip to content

Releases: dreamference/mightling

Mightling v1.7.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 04:49

Mac desktop app (preview, unsigned)

Mightling-1.7.0-arm64-preview.dmg (Apple silicon) and Mightling-1.7.0-x64-preview.dmg (Intel) are a preview of the desktop app for macOS 12 or later, a client of a Mightling node on your network. They are signed ad hoc only, with no Apple Developer ID and no notarization, so macOS refuses to open the app the first time. Drag Mightling to Applications, try to open it once, then allow it in System Settings → Privacy & Security → Open Anyway (on macOS 14 and earlier, Control-click the app and choose Open instead). Or, in Terminal: xattr -dr com.apple.quarantine /Applications/Mightling.app. Check the dmg against SHA256SUMS first; steps in docs/desktop.md.

Windows desktop app (preview, unsigned)

Mightling-Setup-1.7.0-arm64.exe (Windows on Arm) and Mightling-Setup-1.7.0-x64.exe (x86-64) install a preview of the desktop app for Windows 11, with ling.exe inside, for you alone (no administrator), with a Start menu entry; Windows' Apps list uninstalls it. They are not signed: SmartScreen warns the first time (More info, then Run anyway), and Smart App Control must be off. Check the installer against SHA256SUMS first.

The desktop app's Work view does what the Codex app's does. The composer (@ files, $ skills, / commands, a model and effort picker, Plan mode, follow-ups), the review pane (the uncommitted, staged, commit and branch scopes; stage, unstage and revert by file or hunk; comments for the agent; a generated commit message; commit, push and a pull-request page), worktrees with hand-off to the local checkout and local environments, terminal tabs, threads with pins, sections and search, a goal row, /review, skills, MCP servers, plugins and hooks, subagents and memories, the Scheduled view of Night Shift, and notifications. Beside the thread: a file tree and file tabs, search files (Ctrl+P, name:line), an artifacts viewer (Markdown, images, PDF, HTML without scripts), a preview tab for pages on this machine or the local network (a site on the internet asks first, and /airgapped on keeps it to this machine), and an Activity view across threads. Revert under a turn asks first, undoes the turn's file changes in its repository and then removes the turn from the thread; if the files cannot be undone, nothing changes. Off until you turn them on in Settings: a pet, suggested follow-up prompts, a pull-request tab through your own gh, and a read-only board of what subagents posted for each other. Another agent's configuration can be imported (its plugins are not). On a Mac, the shortcuts use the Command key.

The desktop app on Windows. A preview for Windows 11 on Arm and x86-64, now with an installer (Mightling-Setup-1.7.0-<arch>.exe, the note above): it installs for you alone, with no administrator, adds a Start menu entry, and Settings → Apps removes it. It is a client of a Mightling node on your network, with ling.exe inside. ling update and install.ps1 update the command-line client only; run the next release's installer to update the app.

The Mac preview is steadier. It no longer runs the Mac's stub git (whose dialog offered the Command Line Tools in any folder; install them for the review pane and worktrees), never waits on a keychain prompt at start, and stays responsive while macOS asks for access to a folder under Documents, Desktop or Downloads; it quits on SIGTERM. Still signed ad hoc and not notarized: the note above says how to open it the first time.

The Onyx web chat is retired. ling web and the desktop app have taken over its jobs, image search and voice included. On a machine that still has its containers, ling-admin offers once to remove them, and ling-admin chat remove does it at any time (Onyx's images are about 4.9 GB); the deployment folder is left for you to delete.

Night Shift can try a task more than once. /night add --best-of N runs the task N times in separate worktrees and keeps the attempt its chooser picks; one attempt stays the default.

Several Signal bridges on one machine. ling signal setup --name work links a second account, each bridge its own system account and service; the first is default. The egress audit names every bridge that is on.

Two nodes on one network. A client that remembers a node no longer gives it up because another node answered first, a node whose model server is stopped is not chosen, and on Wi-Fi with power saving the remembered node is found by browsing rather than at an address it no longer has.

An unpacked Linux build starts. The release's .deb writes the AppArmor profile Chromium's sandbox needs; a zip or a copied Mightling-linux-<arch>/ folder had none and stopped with No usable sandbox!. Such a build now carries install-sandbox-profile.sh beside the binary: run it once before the first start (docs/desktop.md). ling-admin desktop install writes the profile for a checkout's build before its first run.

/import is hidden in ling. Its plugin step could add a marketplace hosted on GitHub, which the egress audit does not cover.

Full Changelog: v1.6.4...v1.7.0

Mightling v1.6.4

Choose a tag to compare

@github-actions github-actions released this 15 Oct 13:37

Mac desktop app (preview, unsigned)

Mightling-1.6.4-arm64-preview.dmg (Apple silicon) and Mightling-1.6.4-x64-preview.dmg (Intel) are a preview of the desktop app for macOS 12 or later, a client of a Mightling node on your network. They are signed ad hoc only, with no Apple Developer ID and no notarization, so macOS refuses to open the app the first time. Drag Mightling to Applications, try to open it once, then allow it in System Settings → Privacy & Security → Open Anyway (on macOS 14 and earlier, Control-click the app and choose Open instead). Or, in Terminal: xattr -dr com.apple.quarantine /Applications/Mightling.app. Check the dmg against SHA256SUMS first; steps in docs/desktop.md.

The model server runs SGLang v0.5.21. The default model's recipe pins lmsysorg/sglang by digest; the pin moves from v0.5.19 to v0.5.21. The old image skipped a save of the recurrent state when accepted draft tokens crossed a checkpoint, so a later prefix-cache hit could pair the new attention cache with a stale state (SGLang #37817/#37818, fixed in v0.5.20). Before the move, both images were probed on a GB10 for wrong answers with the same greedy requests and seeds: 48 at one stream, 200 at two, 304 at eight, and 32 two-turn conversations over a long prefix; 0 wrong on both, and the new image answered a few percent faster (67.6 / 121.8 / 297.7 tokens per second over all streams at 1 / 2 / 8, against 63.7 / 112.7 / 269.1). One launch flag changed name with the image (--cuda-graph-max-bs became --cuda-graph-max-bs-decode; the value is the same); nothing else in the launch line changes. A node that updates pulls the new image (33.7 GB) at its next ling-admin server start, before the running server is replaced; until then it serves on the old one.

The Windows client is back. install.ps1 installs ling.exe and its commands on Windows 11 (Arm64 and x86-64), as 1.5.1 did; 1.6.0, 1.6.1 and 1.6.3 shipped without them, only because the release workflow left the Windows build off by default. The assets are the names install.ps1 asks for: ling-<target>.gz, ling-<target>.sha256sums, codex-code-mode-host-<target>.gz, and the optional ling-search, ling-fetch, ling-code, codex-windows-sandbox-setup and codex-command-runner, for aarch64-pc-windows-msvc and x86_64-pc-windows-msvc. Still a preview: the programs are not code-signed, so Smart App Control must be off to run them. The release's signed checksum list covers the Windows files like every other, and ling update checks it on Windows too; install.ps1 checks the per-target sums but not that signature yet (install.sh and ling update do), a gap left for a later release.

Full Changelog: v1.6.3...v1.6.4

Mightling v1.6.3

Choose a tag to compare

@github-actions github-actions released this 15 Oct 03:55

Mac desktop app (preview, unsigned)

Mightling-1.6.3-arm64-preview.dmg (Apple silicon) and Mightling-1.6.3-x64-preview.dmg (Intel) are a preview of the desktop app for macOS 12 or later, a client of a Mightling node on your network. They are signed ad hoc only, with no Apple Developer ID and no notarization, so macOS refuses to open the app the first time. Drag Mightling to Applications, try to open it once, then allow it in System Settings → Privacy & Security → Open Anyway (on macOS 14 and earlier, Control-click the app and choose Open instead). Or, in Terminal: xattr -dr com.apple.quarantine /Applications/Mightling.app. Check the dmg against SHA256SUMS first; steps in docs/desktop.md.

Compaction is faster, and it happens between your turns. When a session's context reaches the compaction limit, the agent summarises it and carries on from the summary. Until now every such summary cost far more than it should: Mightling's model server keeps the session's prompt in its cache, but the compaction request was built without the tool list, so its prompt differed from the cached one within the first few tokens and the server re-read the whole context (60–90K tokens, 50–75 s) before writing a word. The compaction request now carries the turn's tools, so it is served from the cache (a median 100% of the prompt cached in the measurement, against 0% before) and costs the summary alone. The summary is also bounded to about 800 words, so it does not run long.

With compaction that cheap, Mightling now compacts at the end of a turn: once an answer is on screen and the context has passed about 50,000 tokens (20% of the model's usable window), the session compacts while you read, instead of stopping in the middle of your next request. If you type during it, your message waits for the summary and then runs in the same turn (Enter), or starts the next turn after it (Tab, the queue key); nothing is lost. Measured on two scripted multi-turn coding sessions against a GB10 (12 sessions planned, 10 run): turn-end compactions took a median 53.5 s; the sessions compacted mid-turn 2.0–2.5 times each without it and never with it; every typed message was kept; and the sessions were 27–42% shorter in wall time. The report is docs/dev/turn-end-compaction/2026-10-14.md. ling exec (Night Shift, SWE-bench) never compacts at the end of a turn, since its process ends with the answer.

Switches, for anyone who wants the old behaviour: mightling_turn_end_compaction = false in the Dreamference config file (or DREAMFERENCE_MIGHTLING_TURN_END_COMPACTION=0) turns turn-end compaction off; DREAMFERENCE_MIGHTLING_COMPACT_SUMMARY_WORDS=0 removes the length bound (another number moves it); DREAMFERENCE_MIGHTLING_COMPACTION_TOOLS=0 sends the compaction request without tools as before.

Dropping old tool outputs instead of summarising: built, measured, off. A third variant drops old tool outputs (keeping the calls and a one-line placeholder) when that alone brings the context under the limit, and summarises only otherwise. It is in this release as a setting (mightling_drop_old_outputs, DREAMFERENCE_MIGHTLING_DROP_OLD_OUTPUTS=1) and off: in the same measurement it compacted less but left turns over the threshold with nothing on record, and one session ran into the two-hour limit. It stays available for the benchmark nights.

Code Mode's wait is gone where it could not work. When Code Mode's exec is offered in the form the SGLang server drops (DREAMFERENCE_MIGHTLING_EXEC_TOOL=freeform, the pre-1.6.1 behaviour), Codex still offered the companion wait tool, and the model's calls to it ended in "exec cell not found", each costing minutes of waiting on a test run that had to be relaunched. wait is now offered only with an exec that reaches the model.

Benchmark nights: every arm smoked first. The night script's start now runs one real task per arm before the overnight unit starts and refuses to start on a failure, after a night whose experimental arm failed every task in seconds on a setting the agent could not accept. A per-task limit (TASK_TIMEOUT) is a parameter of the script. The best-of-N chooser has a second version (scripts/swe_bench_chooser_v2.py) that writes reproduction tests from the issue, runs them in the task's container and consults the judge last; it is a script, not yet part of Night Shift.

Full Changelog: v1.6.1...v1.6.3

Mightling v1.6.1

Choose a tag to compare

@github-actions github-actions released this 14 Oct 08:37

Mac desktop app (preview, unsigned)

Mightling-1.6.1-arm64-preview.dmg (Apple silicon) and Mightling-1.6.1-x64-preview.dmg (Intel) are a preview of the desktop app for macOS 12 or later, a client of a Mightling node on your network. They are signed ad hoc only, with no Apple Developer ID and no notarization, so macOS refuses to open the app the first time. Drag Mightling to Applications, try to open it once, then allow it in System Settings → Privacy & Security → Open Anyway (on macOS 14 and earlier, Control-click the app and choose Open instead). Or, in Terminal: xattr -dr com.apple.quarantine /Applications/Mightling.app. Check the dmg against SHA256SUMS first; steps in docs/desktop.md.

Search inside a long PDF. The agent can now search a PDF it has not indexed with pdf_search: a URL, or a PDF in the session's working directory or in one of your document collections. The PDF is read by the local file index's reader in its sandbox and indexed on its own (keywords and meaning, as docs_search does), and the best passages come back with their page numbers; the agent reads on with docs_read and cites the page. A long paper or manual no longer has to be read page by page through the web fetch. A URL is downloaded once (ling-fetch --download, PDFs only, within a size cap) and a second question uses the copy, kept until it has gone unused for a day. At /airgapped on a URL is refused and a local PDF is still searched. ling-docs extract <file.pdf> --page N prints a PDF's text from a shell. Linux, where the local file index is installed (a node installs it).

Code Mode now works on SGLang. Codex offers Code Mode's exec tool (a program that calls several tools in one turn) as a kind of tool the SGLang server drops without a word, so in 1.6.0 the model never saw it. ling now offers exec to SGLang and vLLM as an ordinary function and turns the model's call back into the call Codex expects; against ling-engine nothing changes. Measured on 44 SWE-bench Verified tasks (night 6): 31 resolved with it against 30 without (p = 1.0, no measurable difference), the model used exec in all 44 tasks, and the median time per task was 7 min 7 s against 5 min 38 s without it. It stays on; DREAMFERENCE_MIGHTLING_EXEC_TOOL=freeform goes back to 1.6.0's behaviour.

A prompt for a machine with no network. ling prompt use offline (or DREAMFERENCE_MIGHTLING_PROMPT=offline for one run) starts sessions with the general prompt minus its web and email instructions, so the model is not told to run commands that cannot work where there is no network: a container, an air-gapped machine, a benchmark. default is unchanged.

apply_patch where the server can run it. Mightling now tells the agent about Codex's apply_patch editing tool when the model server is ling-engine, which runs that kind of tool; on the SGLang server a GB10 runs today the tool would be dropped by the server without a word, so nothing changes there and the agent edits through the shell as before. Night 5 was to measure an ordinary-function form of apply_patch on SGLang, and could not run: the Codex this release is built on accepts only the freeform form, so all 44 of that arm's tasks stopped at start, while the default resolved 29 of 44. The default is unchanged: no apply_patch tool on SGLang.

Benchmark nights, reproducible. The SWE-bench rounds that decide what ships now run from one script with the arms named (ARMS) and the harness commit pinned (REF), on this machine alone; the task lists are committed under docs/dev/swe-bench/, a later fresh list leaves out every earlier one (draw --exclude), and the 68 tasks whose pull request does not match its issue (PAIChecker's human-labelled list) are out of every list from night 2 on. A replay count (scripts/context_budget_replay.py compactions) reads compactions per task from a finished run, and the report now counts patches that broke a passing test apart from those that did not fix the issue, and shows compactions per run with their share of the agent's time. Night 4 measured a restart instead of a third compaction (--restart-after-compactions 2): 28 of 44 resolved against the default's 31 (−6.8 points, p = 0.453, no measurable difference), so the arm is dropped and the default stays: a session compacts as often as it needs.

Night Shift's morning report checks compactions. For the sessions of the day that compacted, the report's new Compactions section says whether each summary still names the files changed, the failed commands and the last test result. It reads the session files only, with no model call; compaction_audit = false in the [night] table switches it off.

The test suite is offline by construction. A test that would start the installed ling or connect to the model server now fails with the path or address in its message; the one module that tests the built binary opts in by name. The suite takes about two minutes, which the project guide now says instead of the eight seconds it used to claim.

Signal is no longer a preview. The Signal bridge (ling signal setup) has now been used against a real Signal account: linked to the owner's own account by QR code, a question asked in Note to Self and answered there, and /stop, with 1.6.0 as published. Nothing in the bridge changed for this. Matrix and Telegram (ling chat) keep their preview label: neither has yet been tested against a real homeserver or Telegram bot.

Signal says when the model is busy with a benchmark. While a benchmark run holds the model, a question from Signal is not answered, and Mightling now replies in Note to Self with the run, its progress and roughly how long is left, so you know when to ask again. Before, the reply was the raw server error.

Nodes on Wi-Fi are found again. Wi-Fi power saving, which Ubuntu's NetworkManager turns on by default, loses most of the multicast DNS your other computers find a GB10 by: on two GB10s on Wi-Fi up to ~80% of the queries went unanswered, and laptops could not find their node. ling-admin host setup and sudo ling-admin node prepare now turn it off for the Wi-Fi connection in use (nmcli connection modify <connection> 802-11-wireless.powersave 2, and iw dev <interface> set power_save off for now, with no reconnect, so an SSH session survives); ling-admin host check and node enable say when it is on, with the commands. On a Linux laptop, when ling finds no node and the laptop's own Wi-Fi saves power, it adds one line saying so, with the commands to run; it changes nothing itself. On Ethernet nothing changes and nothing is said.

Fixed

  • ling-admin node provision --web ran ling-admin ling start and ling configure, a subcommand ling-admin never had (a leftover of the rename), so --web failed at that step since 1.5.1; it now runs ling-admin chat start and chat configure there, and the dry run names the web UI instead of node enable --no-web.

Full Changelog: v1.6.0...v1.6.1

Mightling v1.6.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 19:23

Mac desktop app (preview, unsigned)

Mightling-1.6.0-arm64-preview.dmg (Apple silicon) and Mightling-1.6.0-x64-preview.dmg (Intel) are a preview of the desktop app for macOS 12 or later, a client of a Mightling node on your network. They are signed ad hoc only, with no Apple Developer ID and no notarization, so macOS refuses to open the app the first time. Drag Mightling to Applications, try to open it once, then allow it in System Settings → Privacy & Security → Open Anyway (on macOS 14 and earlier, Control-click the app and choose Open instead). Or, in Terminal: xattr -dr com.apple.quarantine /Applications/Mightling.app. Check the dmg against SHA256SUMS first; steps in docs/desktop.md.

Search your own documents. Mightling now keeps a private index of your files and the agent can search it. ~/Documents and ~/Downloads are indexed by default; add other folders with ling docs add <folder> --name <name>, and remove any of them, the defaults included, with ling docs remove <name>. In a session the agent searches with docs_search, reads a passage with docs_read, and cites the file and the page or lines it used. From a shell: ling docs search "notice period acme", ling docs read <id> --page 7, ling docs status.

  • What it reads in this release: PDF (text layer), Markdown, reStructuredText, Org, LaTeX and plain text. Scanned PDFs are recorded as needing OCR and counted in status; Word, HTML, mail and OCR come in a later release.
  • Every language. The embedding model is multilingual (snowflake-arctic-embed-m-v2.0), keyword search covers Chinese and Japanese, and right-to-left PDFs are read in order.
  • Nothing leaves the machine. The index opens no network connection at any step, and ling-admin audit egress --docs proves it. /airgapped on does not turn it off.
  • Safe to point at a Downloads folder. Installers, archives, disk images and videos are never opened; secret-looking files and folders are skipped; each PDF is read in a sandbox with no network and a 1 GB memory cap, so a malformed or hostile file fails alone. Indexing shares the code index's memory budget and yields to the model server.
  • What it found on our test set: the right passage in the first 10 results for every one of 56 questions about 96 documents, in under 20 ms a query; 50,000 passages still answer in under 100 ms.
  • On a GB10 node the installer downloads what the index needs (PDFium, ONNX Runtime and the embedding model, about 320 MB, each checked against a pinned checksum). On a node installed earlier, run ling-admin docs setup once after updating. Linux clients receive ling-docs but not these files yet, so for now the file index is a node feature; macOS and Windows clients do not have it.
  • To switch it off: mightling_docs = false in dreamference.toml, or DREAMFERENCE_MIGHTLING_DOCS=0.

A new web UI: ling web. ling web now serves Mightling's own UI, built into every ling (until now it served a placeholder page). It opens on Ask, for questions that are not about a repository, with Work, the agent sessions, one click away.

  • Ask threads: "New question" starts one; each thread has a folder of its own under ~/.mightling/ask/ and the agent's sandbox. Threads can be searched, renamed and archived, and every answer has a copy button.
  • Attachments: the clip button, or paste a screenshot. Images go to the model (Qwen3.8 reads them); other files are placed in the thread's folder for the agent to open. Up to 20 MB an image and 100 MB a file.
  • On a phone: below 720 px the thread list becomes a drawer, and the page fits without zooming or scrolling sideways. Sign a phone in with ling web pair, which prints an 8-digit code (one use, ten minutes).
  • Signing in: ling web open opens a one-time link on this machine. Nothing a command run by the agent can read is a credential.
  • On a node shared with your network, ling-admin node enable now starts ling web on the LAN (port 3100) and advertises it; ling-admin node enable --no-web keeps it on loopback.
  • The desktop app's Chat is now Ask. On Linux and macOS, the app's Chat entry (menu label Ask) loads this UI from ling web on the same machine, starting ling web serve itself when none is running and stopping it on quit. On a client, Ask runs on the client against the node's model server. ling app opens it (--ask; --chat still works). On Windows, which has no ling web yet, Ask opens Work.
  • The previous web chat is still there. It keeps running on port 3000 and is managed with ling-admin chat … as before. The image gallery, voice input and the Apps settings page are not in the new UI yet.

Ask from your phone: Signal, Matrix and Telegram (preview, off by default). A message you send becomes an Ask thread on the node, and the answer comes back in the same chat. Every messenger is off until you run its setup on the node: installing or updating Mightling turns none of them on, starts nothing and opens no port. All three need ling web running on the node (ling web start).

Messenger Privacy Turn it on Turn it off
Signal End-to-end encrypted; your own account, in Note to Self ling signal setup ling signal remove
Matrix Your own homeserver on the node, reached over your tailnet ling-admin matrix start, then ling chat start ling chat stop, ling-admin matrix stop
Telegram Less private: messages pass through Telegram's servers unencrypted ling chat telegram setup, then ling chat start ling chat telegram off
  • Signal links the bridge to your own account as one more device, the way Signal Desktop is. You write in Note to Self; every other conversation is dropped unread. The bridge runs as a system account of its own (mightling-signal), so the agent can never read your Signal keys; signal-cli and its Java runtime are downloaded at setup, pinned by SHA-256. ling signal setup --dry-run prints every change first. A linked device holds keys to your whole account: read the Signal section of the messengers guide before linking.
  • Matrix runs a private homeserver on the node, on a Docker network with no route out, and your phone reaches it through Tailscale (which you install and sign in to yourself). Use Element X.
  • Telegram shows a warning and asks you to type yes: answers can carry what the agent read for you, such as mail, files and code, through Telegram's servers.
  • The air gap applies. At /airgapped on, Signal sends nothing, not even a read receipt, and Telegram pauses; Matrix keeps working, because its homeserver never leaves the node.
  • The egress audit says so. While a bridge is on, every ling-admin audit egress report names it as a declared exception.
  • Why preview: the Matrix and Telegram bridge is tested against stand-ins of Telegram's Bot API and a Matrix homeserver, end to end through a real ling web; the Signal bridge is tested against a scripted signal-cli and a stand-in ling web; none has yet been exercised against a real Signal account, a real Telegram bot or a real homeserver with Element X, which is why each keeps its preview label. Full guide: the Phone messengers page of the documentation.

Refine mode stays opt-in. ling --refine (also ling exec --refine, [night] refine = true, or mightling_refine = true in dreamference.toml) first studies the task in a session that changes nothing, then does it in a fresh one. On a fixed 100-task sample of SWE-bench Verified, run on one DGX Spark, it resolved 69/100 against 68/100 without it (the two arms each won tasks the other lost: 10 against 9, McNemar p = 1.0), at about 2.2 times the time per task (a median of 13.9 minutes against 6.5), so it remains off by default. It can still help on tasks whose description is thin or misleading.

Measured: 68 of 100 SWE-bench Verified tasks. With the default configuration, 1.5.1's agent and Qwen3.8-27B resolved 68 of a fixed 100-task sample of SWE-bench Verified on one DGX Spark, offline, one attempt per task. That corresponds to an estimated 69% on all 500 tasks (95% band 63.9–73.4%), estimated from the per-task results of every public submission (scripts/swe_bench_compare.py). It is our own measurement, not a leaderboard entry. The same sample with refine mode on resolved 69, one more, at 2.2 times the time (above). On 50 fresh SWE-bench Verified tasks, a test-discipline prompt rule resolved 33 against the default's 34 (no measurable difference), so the default task prompt stays unchanged.

The installer installs the two new programs on Linux: ling-docs, linked onto your PATH, and ling-signal, placed beside ling with no link and not started. On a GB10 node it also runs ling-admin docs setup (skipped with --no-model). The unattended node install is otherwise as in 1.5.1.

Mightling for macOS, as a preview. The release now carries the desktop app for Macs: Mightling-1.6.0-arm64-preview.dmg for Apple silicon and Mightling-1.6.0-x64-preview.dmg for Intel, for macOS 12 or later. On a Mac the app is a client of your GB10: Ask and Work both run the ling bundled in the app against the node's model. It finds the node on your network by itself, as ling does (run ling-admin node enable on the GB10 first). The file index is not available on a Mac.

It is not signed with an Apple Developer ID and not notarized (signed ad hoc only), so macOS will not open it the first time. Check the dmg against the release's signed SHA256SUMS, drag Mightling to Applications, then:

  • try to open it once, and click Open Anyway in System Settings → Privacy & Security;
  • on macOS 14 and earlier you can instead Control-click (or right-click) the app, choose Open, and confirm;
  • or, in Terminal: xattr -dr com.apple.quarantine /Applications/Mightling.app.

Allow it when macOS asks whether Mightling may...

Read more

Mightling v1.5.1

Choose a tag to compare

@github-actions github-actions released this 08 Oct 22:05

Full Changelog: v1.4.1...v1.5.1