Skip to content

Releases: howashoji/Looptrack

v1.0.2

Choose a tag to compare

@github-actions github-actions released this 06 Oct 05:31

Server(サーバ版)

1.0.2 is a stable release. The changes below are relative to v1.0.1,
and this version adds no migrations.

Added

  • The web UI links to the user guide. "Guide" sits below "Account
    settings" in the user menu and opens the guide website in a new tab. The
    link goes to the pages for the version the server runs, at
    https://howashoji.github.io/Looptrack/<version>/. Release candidates get
    their own pages too. When the page language is Japanese, ja/ is added. A build
    whose version is not a release tag opens latest/.

Docs

  • Updated the documentation.

1.0.2 は正式版で、下の変更は v1.0.1 からの差分です。この版にマイグレーションはありません。

追加

  • Web 画面から利用者ガイドを開けます。 利用者メニューの「アカウント設定」の次に「ガイド」が付き、ガイドの Web サイトを新しいタブで開きます。行き先はサーバが動いている版のページで、URL は https://howashoji.github.io/Looptrack/<版>/ です。リリース候補の版も同じです。画面の言語が日本語なら ja/ が付きます。版がリリースのタグの形でない手元のビルドは latest/ を開きます。

文書

  • ドキュメントを最新に更新しました。

Desktop app(デスクトップ版)

1.0.2 is a stable release. The changes below are relative to v1.0.1.

Added

  • The app's web UI links to the user guide. "Guide" sits below "Account
    settings" in the user menu and opens the guide website in a new browser
    tab. The link goes to the pages for the version of the app, at
    https://howashoji.github.io/Looptrack/<version>/. Release candidates get
    their own pages too. When the page language is Japanese, ja/ is added. A build
    whose version is not a release tag opens latest/.

Docs

  • Updated the documentation.

1.0.2 は正式版で、下の変更は v1.0.1 からの差分です。

追加

  • アプリの画面から利用者ガイドを開けます。 利用者メニューの「アカウント設定」の次に「ガイド」が付き、ガイドの Web サイトをブラウザの新しいタブで開きます。行き先はアプリの版のページで、URL は https://howashoji.github.io/Looptrack/<版>/ です。リリース候補の版も同じです。画面の言語が日本語なら ja/ が付きます。版がリリースのタグの形でない手元のビルドは latest/ を開きます。

文書

  • ドキュメントを最新に更新しました。

v1.0.1

Choose a tag to compare

@github-actions github-actions released this 05 Oct 06:18

Server(サーバ版)

1.0.1 is a stable release with the same contents as 1.0.1-rc.1. Nothing
changed after that release candidate, so the changes below are relative to
v1.0.0. Unlike the release candidate, 1.0.1 becomes the Latest release on
GitHub Releases and takes the latest tag on GHCR. The one-line installer
installs it, and a server on 1.0.0 tells you about it. For a running server,
the one change is a newer SQLite driver. A server that stores its data in
MySQL does not use that driver.

Changed

  • The SQLite driver is now modernc.org/sqlite 1.60.1. It is what a
    server that keeps its data in SQLite (LOOPTRACK_DSN=sqlite:<file>) reads
    and writes the database with. It moved up from 1.59.0, and
    modernc.org/libc from 1.75.7 to 1.77.1. The new driver ships its own list
    of third-party licenses (LICENSE-3RD-PARTY.md), and NOTICE now carries
    it in full.
  • Contributors: deploy/public-scan.sh reads its list of internal names
    from outside the published tree.
    In a clone of the public repository the
    list is not there, so the scan prints one line saying it skipped that check
    and goes on with the others. The check for issue IDs still runs.
    CONTRIBUTING.md describes it.

Moving from 1.0.0 / 1.0.1-rc.1

  • This version adds no migrations.
  • A server on 1.0.0 shows the new version in a banner at the top of the web
    UI for admins, in looptrack doctor and in the startup log. The upgrade is one line:
    curl -fsSL https://raw.githubusercontent.com/howashoji/looptrack/main/deploy/install.sh | sudo sh -s -- --upgrade.
    With --auto-upgrade on, the daily timer replaces the server by itself.
    There are no migrations, so that includes servers on MySQL.
  • A server on 1.0.1-rc.1 already runs the same contents. It follows release
    candidates as well, so it tells you about 1.0.1 too, and the same
    --upgrade takes it there. Once on 1.0.1, it follows stable releases only;
    set LOOPTRACK_UPDATE_CHANNEL=prerelease to keep seeing release candidates.

1.0.1 は正式版で、中身は 1.0.1-rc.1 と同じです。その候補版の後に変更は無く、下の変更は v1.0.0 からの差分になります。候補版と違うのは公開のされ方。1.0.1 は GitHub Releases の Latest になり、GHCR の latest タグも付きます。1 行のインストーラが入れるのはこの版で、1.0.0 のサーバもこの版を知らせます。動いているサーバにとっての変更は、SQLite のドライバが新しくなったことだけ。データを MySQL に置くサーバは、このドライバを使いません。

変更

  • SQLite のドライバを modernc.org/sqlite 1.60.1 に上げました。 データを SQLite に置くサーバ(LOOPTRACK_DSN=sqlite:<ファイル>)は、このドライバで DB を読み書きします。前の版は 1.59.0 です。あわせて modernc.org/libc も 1.75.7 から 1.77.1 に上がりました。新しいドライバには第三者のライセンスの一覧(LICENSE-3RD-PARTY.md)が付いています。NOTICE にもその全文を収めました。
  • 開発に加わる人向け: deploy/public-scan.sh は、内部の名前の一覧を公開物の外から読みます。 公開リポジトリの clone にはこの一覧が無いので、検査はその項目を飛ばしたことを 1 行出し、残りの項目を続けます。イシューの ID の検査はこれまでどおり。説明は CONTRIBUTING.md にあります。

1.0.0 / 1.0.1-rc.1 から上げるとき

  • この版にマイグレーションはありません。
  • 1.0.0 のサーバは、管理画面の上部の帯・looptrack doctor・起動時のログでこの版を知らせます。上げるときの 1 行は curl -fsSL https://raw.githubusercontent.com/howashoji/looptrack/main/deploy/install.sh | sudo sh -s -- --upgrade です。--auto-upgrade on にしたサーバでは、1 日 1 回の timer が自分で置き換えます。マイグレーションが無いので、MySQL のサーバも同じです。
  • 1.0.1-rc.1 のサーバは、既に同じ中身で動いています。リリース候補も追う設定なので 1.0.1 も知らせ、同じ --upgrade で上がります。1.0.1 に上げた後は正式版だけを追います。リリース候補も見続けたいときは、LOOPTRACK_UPDATE_CHANNEL=prerelease を設定してください。

Desktop app(デスクトップ版)

1.0.1 is a stable release with the same contents as 1.0.1-rc.1. Nothing
changed after that release candidate, so the changes below are relative to
v1.0.0. Unlike the release candidate, it becomes the Latest release on
GitHub Releases, and an app on 1.0.0 offers it as an update.

Changed

  • The SQLite driver is now modernc.org/sqlite 1.60.1. The app keeps
    your data in a single SQLite file and reads and writes it with this driver.
    It moved up from 1.59.0, and modernc.org/libc from 1.75.7 to 1.77.1. The
    new driver ships its own list of third-party licenses
    (LICENSE-3RD-PARTY.md), and NOTICE now carries it in full.

Moving from 1.0.0 / 1.0.1-rc.1

  • Update the app as a whole, as usual. Choose "Update to version 1.0.1" at
    the top of the tray menu, or leave it to "Install updates automatically".
    On Windows, too, the 1.0.0 app replaces itself in place.
  • An app on 1.0.1-rc.1 already runs the same contents and offers 1.0.1 as
    well. After that update it follows stable releases only.

1.0.1 は正式版で、中身は 1.0.1-rc.1 と同じです。その候補版の後に変更は無く、下の変更は v1.0.0 からの差分になります。候補版との違いは、GitHub Releases の Latest になること。1.0.0 のアプリも、この版を更新として知らせます。

変更

  • SQLite のドライバを modernc.org/sqlite 1.60.1 に上げました。 アプリはデータを 1 つの SQLite のファイルに置き、このドライバで読み書きします。前の版は 1.59.0 です。あわせて modernc.org/libc も 1.75.7 から 1.77.1 に上がりました。新しいドライバには第三者のライセンスの一覧(LICENSE-3RD-PARTY.md)が付いています。NOTICE にもその全文を収めました。

1.0.0 / 1.0.1-rc.1 から上げるとき

  • いつもどおりアプリごと更新します。トレイのメニューのいちばん上の「新しい版 1.0.1 に更新する」を選ぶか、「新しい版を自動で入れる」に任せてください。Windows でも、1.0.0 のアプリはその場で置き換わります。
  • 1.0.1-rc.1 のアプリは既に同じ中身で動いていて、1.0.1 も知らせます。この更新の後は正式版だけを追います。

v1.0.1-rc.1

v1.0.1-rc.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Oct 04:05

Server(サーバ版)

First release candidate for 1.0.1, relative to v1.0.0. Because it comes
after 1.0.0, it is published as a pre-release: v1.0.0 stays the Latest
release on GitHub Releases and keeps the latest tag on GHCR, so the one-line
installer still installs 1.0.0. For a running server, the one change is a newer
SQLite driver. A server that stores its data in MySQL does not use that driver.

Changed

  • The SQLite driver is now modernc.org/sqlite 1.60.1. It is what a
    server that keeps its data in SQLite (LOOPTRACK_DSN=sqlite:<file>) reads
    and writes the database with. It moved up from 1.59.0, and
    modernc.org/libc from 1.75.7 to 1.77.1. The new driver ships its own list
    of third-party licenses (LICENSE-3RD-PARTY.md), and NOTICE now carries
    it in full.
  • Contributors: deploy/public-scan.sh reads its list of internal names
    from outside the published tree.
    In a clone of the public repository the
    list is not there, so the scan prints one line saying it skipped that check
    and goes on with the others. The check for issue IDs still runs.
    CONTRIBUTING.md describes it.

Moving from 1.0.0

  • This version adds no migrations.
  • A server on 1.0.0 follows stable releases and does not tell you about this
    release candidate. To try it, upgrade to it by version:
    curl -fsSL https://raw.githubusercontent.com/howashoji/looptrack/main/deploy/install.sh | sudo sh -s -- --upgrade --version v1.0.1-rc.1.
    Set LOOPTRACK_UPDATE_CHANNEL=prerelease if you want the new-version notice
    to include release candidates.

1.0.1 のリリース候補の 1 つ目で、下の変更は v1.0.0 からの差分です。1.0.0 の後に出す版はプレリリースとして公開します。GitHub Releases の Latest と GHCR の latest タグは v1.0.0 のまま。1 行のインストーラが入れるのも 1.0.0 です。動いているサーバにとっての変更は、SQLite のドライバが新しくなったことだけ。データを MySQL に置くサーバは、このドライバを使いません。

変更

  • SQLite のドライバを modernc.org/sqlite 1.60.1 に上げました。 データを SQLite に置くサーバ(LOOPTRACK_DSN=sqlite:<ファイル>)は、このドライバで DB を読み書きします。前の版は 1.59.0 です。あわせて modernc.org/libc も 1.75.7 から 1.77.1 に上がりました。新しいドライバには第三者のライセンスの一覧(LICENSE-3RD-PARTY.md)が付いています。NOTICE にもその全文を収めました。
  • 開発に加わる人向け: deploy/public-scan.sh は、内部の名前の一覧を公開物の外から読みます。 公開リポジトリの clone にはこの一覧が無いので、検査はその項目を飛ばしたことを 1 行出し、残りの項目を続けます。イシューの ID の検査はこれまでどおり。説明は CONTRIBUTING.md にあります。

1.0.0 から上げるとき

  • この版にマイグレーションはありません。
  • 1.0.0 のサーバは正式版だけを追うので、このリリース候補を知らせません。試すなら、版を指定して上げてください: curl -fsSL https://raw.githubusercontent.com/howashoji/looptrack/main/deploy/install.sh | sudo sh -s -- --upgrade --version v1.0.1-rc.1。新しい版の知らせにリリース候補も含めたいときは、LOOPTRACK_UPDATE_CHANNEL=prerelease を設定します。

Desktop app(デスクトップ版)

First release candidate for 1.0.1, relative to v1.0.0. Because it comes
after 1.0.0, it is published as a pre-release, and v1.0.0 stays the Latest
release on GitHub Releases. An app on 1.0.0 follows stable releases, so it
does not offer this version. To try it, download it from the release page.

Changed

  • The SQLite driver is now modernc.org/sqlite 1.60.1. The app keeps
    your data in a single SQLite file and reads and writes it with this driver.
    It moved up from 1.59.0, and modernc.org/libc from 1.75.7 to 1.77.1. The
    new driver ships its own list of third-party licenses
    (LICENSE-3RD-PARTY.md), and NOTICE now carries it in full.

1.0.1 のリリース候補の 1 つ目で、下の変更は v1.0.0 からの差分です。1.0.0 の後に出す版はプレリリースとして公開します。GitHub Releases の Latest は v1.0.0 のまま。1.0.0 のアプリは正式版だけを追うため、この版を知らせません。試すときは、リリースのページから取得してください。

変更

  • SQLite のドライバを modernc.org/sqlite 1.60.1 に上げました。 アプリはデータを 1 つの SQLite のファイルに置き、このドライバで読み書きします。前の版は 1.59.0 です。あわせて modernc.org/libc も 1.75.7 から 1.77.1 に上がりました。新しいドライバには第三者のライセンスの一覧(LICENSE-3RD-PARTY.md)が付いています。NOTICE にもその全文を収めました。

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 21:39

Server(サーバ版)

1.0.0 is the first release that is not a release candidate. The changes below
are relative to v1.0.0-rc.5; "What 1.0.0 ships" at the end of this section
is an overview of the whole server and CLI, and the sections of the release
candidates below record what changed between them. The biggest change since
rc.5 is evidence: issues can carry attached files, and closing an issue that
has verify commands needs one by default. If you upgrade a server from rc.5,
read "Moving from 1.0.0-rc.5" first. A MySQL app user with the minimum grants
needs new ones.

Added

  • Attach evidence files to an issue. Test output, screenshots and
    generated reports can now be attached to an issue as files and kept on the
    server, with who attached them and when. From the CLI, use
    looptrack issue attach <ID> <file>..., or --attach <file> on
    issue comment and issue verify; verify --attach-output puts the full,
    untruncated output on the verify record. verify --list and --last can't
    be combined with --attach or --attach-output; the CLI says so and sends
    nothing. The MCP tools take no files, so an
    agent sends them with the CLI and passes the IDs in attachments of
    report_verify or add_comment, and get_issue lists them. In the browser
    the comment box takes a file you pick, drop or paste, and the drawer lists
    the attachments and shows images in place. The REST API gains
    POST /api/v1/issues/{id}/attachments (the body is the file, the name goes
    in X-Looptrack-Filename), GET /api/v1/issues/{id}/attachments,
    GET /api/v1/attachments/{id} and POST /api/v1/attachments/{id}/purge.
    The CLI refuses to send a text file that looks like it holds a secret, since
    the server can't mask it. Attachments can't be deleted; an administrator
    purges the file itself on the new admin page /admin/attachments, which
    also sets the limits (20MiB per file and 1GiB per project by default) and
    shows the usage per project.
  • Attachments live on disk, so backups now come in two parts. The records
    go into the database (migration 0007 adds attachments and
    attachment_purges, and deploy/grants.sql gives the app user SELECT and
    INSERT on both) and the files into a directory: LOOPTRACK_ATTACH_DIR, else
    $STATE_DIRECTORY/attachments, else attachments next to a SQLite
    database. With none of them, the server runs and only attachments are
    unavailable. install.sh adds
    LOOPTRACK_ATTACH_DIR='/var/lib/looptrack/attachments' to .env on install
    and on --upgrade. The compose.yaml from looptrack setup now mounts
    ./data:/data with MySQL too and sets /data/attachments; a MySQL
    compose.yaml written by an earlier setup has no writable volume, so
    --upgrade leaves it alone and prints what to do: add - ./data:/data to
    the volumes and LOOPTRACK_ATTACH_DIR: /data/attachments to the
    environment, create data owned by 65534:65534, and run
    docker compose up -d. Until then only attachments are unavailable. Back up the database first and
    the attachment directory second. The backup --upgrade takes doesn't include
    attachments. looptrack export writes the attachment files to
    <slug>/attachments/<sha256> and a manifest to <slug>/attachments.json
    (file name, size, SHA-256, author, time, issue, and the comment or verify
    record it was attached to), and looptrack verify-files checks the files
    against the SHA-256 in the manifest. An attachment whose file can't be
    exported is listed as missing and export exits with 1. looptrack import
    doesn't carry attachments and says so when it finds a manifest.
    looptrack repair-attachments reports files missing from the directory and
    files nothing points to; --apply removes the latter once they are an hour
    old. A least-privilege MySQL app user needs grants on the two new tables.
    After the migration, install.sh --upgrade checks every table in
    deploy/grants.sql with the new looptrack grants check, and when some
    lack grants it asks for the admin credentials on the terminal and grants
    them again. On a systemd server, LOOPTRACK_INSTALL_DB_ADMIN_PASSWORD_FILE
    passes the password instead. You can also run looptrack grants apply
    yourself. Raise the body limit of the proxy in front to
    the per-file limit, since nginx's client_max_body_size defaults to 1MB.
    See "添付の置き場とバックアップ" in docs/server/DEPLOY.md.
  • looptrack grants check tells whether the MySQL app user has every grant
    it needs.
    It checks each table in deploy/grants.sql for the user in
    LOOPTRACK_DSN. With every grant in place it exits with 0; otherwise it
    prints the tables and the missing privileges and exits with 3. With SQLite
    there is nothing to check, and it exits with 0. install.sh runs it after
    the migration, and the last check of looptrack grants apply looks at
    every table too.
  • CLI: looptrack self-update updates from GitHub releases when no server
    URL is set.
    With neither --url nor LOOPTRACK_API_URL, it no longer
    stops with "No server URL". It picks a version from the GitHub release list
    the same way the desktop app and the server do (semver tags only, never
    /releases/latest, rcs too when you run an rc) and downloads the server
    archive for your OS and CPU. The archive is checked against the signed
    SHA256SUMS; only the looptrack inside is extracted, and that file is
    checked against its own line in the same SHA256SUMS before it replaces the
    running one (.old on Windows, as before). The signature is mandatory: a
    build without the public key stops without contacting GitHub, and so does any
    build with LOOPTRACK_UPDATE_CHECK=off. This path replaces the file only when
    a newer version exists, so it refuses --force (exit code 2).
    --from github|server picks the source explicitly, and a failure on one never
    falls back to the other. With --url or LOOPTRACK_API_URL, nothing changes.
  • The web UI remembers how you left the board. The view, the search
    words and the filters (type, priority, ready only, hide closed, unanswered
    feedback, label and assignee) are kept per project in the browser's
    localStorage and come back the next time you open that project. The sort
    order was already kept. A label or an assignee the project no longer has is
    dropped when the board loads.
  • The browser tab shows the Looptrack icon. Every page, the first-run
    setup page included, links the same picture as the desktop app's icon, and
    the server answers favicon.ico under its base path without sign-in.
  • The web sign-in page has a "Keep me signed in" checkbox. It is off by
    default, and a session without it works as before: it ends 7 days after
    sign-in, or after 12 hours without use. A session with it is not ended for
    being idle. Its expiry, on the cookie and in the database, moves to 400 days
    after the last access each time the last access is recorded (every 5
    minutes); 400 days is the longest cookie lifetime Chrome accepts. The choice
    carries through the two-factor step, registering and removing two-factor
    auth on the account page, and a password change. Signing out, disabling the
    user, making two-factor auth required and an administrator revoking
    sessions all still end it. Migration 0008 adds the persistent column to
    web_sessions; the grants in deploy/grants.sql do not change.

Changed

  • Closing an issue as Done needs evidence by default. On an issue whose body
    holds at least one verify command, the server rejects Done unless the latest
    verify record for the current body carries an attachment, and it rejects a
    missing record too. This is the new per-project rule
    verify.require_evidence, on by default even in a project with no rules at
    all. It applies on every path (CLI, MCP, REST, Web) and can be overridden
    with a reason (--override "reason", override_reason over MCP), which
    leaves a rule_override with rule: verify_evidence_required. A project
    that wants the old behavior sets "verify": {"require_evidence": false} with
    looptrack project rules set and gets a note instead of a rejection. The
    guide, the MCP instructions, the verify plan, the close step of next and the
    kit tell the AI to attach the full test output, screenshots and generated
    files.
    An issue created directly as Done with a verify command in its body is
    rejected the same way, since it can't have a record yet. A record whose
    attachment is purged later still counts as having evidence.
    Clients up to 1.0.0-rc.5 have no --attach, --attach-output or
    issue attach, even though the server's wording names them, so they can only
    close such an issue with an override. Update the clients first. A server older
    than this one rejects rules that contain the key, so remove it before going
    back to an older version (see the upgrade section of docs/server/DEPLOY.md).
  • Windows: the server and client looptrack.exe carry version
    information.
    Both the amd64 and the arm64 looptrack.exe have a
    VERSIONINFO resource. Its ProductName is Looptrack and its ProductVersion
    is the build version as is, release candidates included. The release build
    reads both values back from every exe it makes and stops if either is missing
    or wrong. The tool that writes the resource changed from rsrc to go-winres
    (0BSD, build-only). looptrack.exe still has no icon.
  • The server rejects comments with no text and no attachment. A comment
    whose text is empty or only whitespace, with no attachment, now gets a 400
    (comment_empty) from REST, MCP, the CLI and the web UI alike. Comments
    cannot be deleted, so one empty comment would stay for good. An older client
    or your own script that sent empty comments will now get that error.
    Attachment-only comments still work (over REST, send "text": ""). When you
    change an issue's status with a whitespace-only comment, no comment is
    created:...
Read more

v1.0.0-rc.5

Choose a tag to compare

@github-actions github-actions released this 01 Oct 06:05

Fifth release candidate of Looptrack 1.0.0.

For servers on rc.4, one thing up front: run the one-line install.sh upgrade once by hand. The automatic update does not pick up the new install.sh on its own. "Upgrading from rc.4" below has the line, along with the other steps.

Changes since v1.0.0-rc.4:

  • An out-of-date looptrack or kit takes one command to fix, and that command knows the server URL. Until this release, the setup tool returned looptrack self-update && looptrack issue init … without --url (and a second init when the loop choice was answered), and the "[Update the distributed files]" notice showed the same init. In a terminal without LOOPTRACK_API_URL, that init pointed at the local mode. The setup tool now returns one command that downloads looptrack, verifies its SHA-256 and runs init with --url, --source server and --dist; the notice tells you to call the setup tool instead. Every command in the setup result and the notices uses the absolute path of the looptrack that setup placed. The guide, init, doctor, self-update and the account page no longer point a server user at an init without --url or at a looptrack on the PATH.
  • Upgrading a server with install.sh also updates the looptrack it distributes to users. --upgrade (and the automatic replacement) used to replace only the server's own binary, so sessions running an old looptrack were never told to update. Every install and every --upgrade fills the distribution directory (LOOPTRACK_DIST_DIR) with the binaries for all six platforms, checked against the signed SHA256SUMS. If the distributed looptrack is missing or older than the server, looptrack serve tells administrators in its startup log and in a banner.
  • The setup download replaces a looptrack in ~/.local/bin (on Windows, %LOCALAPPDATA%\Programs\looptrack) that differs from the distributed one, such as the desktop app's symbolic link. Whatever was there used to be kept. The download is skipped only when the SHA-256 matches. A symbolic link is replaced; the file it points to is left alone.
  • Setup commands leave nothing behind in your shell. Pasting one into a terminal used to leave LOOPTRACK_API_URL and LOOPTRACK_PROJECT set, so a later looptrack in another project silently pointed at this one; the download command also left variables and a sum function hiding /usr/bin/sum. In sh the commands run in a subshell or take the variables as a plain prefix. PowerShell wraps them in & { } and restores the previous values. A failed download in sh removes its .part file.
  • If the place of looptrack is missing from your PATH, the setup download adds it: one line in the startup file of your default shell on macOS and Linux, or your user Path on Windows. Reopen the agent app and the terminal afterwards. When looptrack still cannot be found, doctor and the session-start summary say so and show how to fix it.
  • install.sh no longer takes another process's answer on the port for the service's. If an old container held the port, for example, and the service had failed to bind, the installer used to report a finished install anyway. It now stops with an error naming the port. After starting, it checks that the service is active and, with ss, that its main process is the one listening on the port.
  • install.sh checks .env before reading it, and prints no value. An unquoted value with special characters could make the shell print the line (a password included) or run part of it as a command. Such a line now stops install.sh before the file is read, naming only the key.
  • On MySQL, a terminal --upgrade runs the new version's migrate --check before it stops anything. Without LOOPTRACK_SETUP_MIGRATE_DSN it used to stop the service, fail to create the new tables and leave the service stopped. With migrations pending and that variable not set, it lists them and by default stops without changing anything.
  • The secrets guard and the freshness guard's work record read quotes and line continuations the way a shell does, both the POSIX way and the Windows way. A cat of a secret file hidden behind \" is now confirmed; nothing confirmed or recorded before goes through. The git guard is unchanged.
  • CONTRIBUTING.md builds development binaries into ./bin/looptrack. The deployment, updating and AI agents guides and the FAQ cover the changes above.

Upgrading from rc.4:

  • This version adds no database migrations.
  • The one step not to skip: the automatic update keeps running the copy of install.sh saved on the server. Run the one-line upgrade once by hand to get the new one: curl -fsSL https://raw.githubusercontent.com/howashoji/looptrack/main/deploy/install.sh | sudo sh -s -- --upgrade. It fills the distribution directory and adds LOOPTRACK_DIST_DIR to .env even when the server is already on this version. Restart the service if it tells you to.
  • With a compose.yaml written by an older setup, add - ./dist:/dist:ro under services.looptrack.volumes before that --upgrade (create volumes: there if it is missing, as it is with MySQL).
  • If install.sh now stops on a line of .env, put that value in single quotes (KEY='…').
  • Once the server distributes the new looptrack, sessions running an older one get "[Update the distributed files]". Have the agent call the setup tool and run the step it returns; it replaces looptrack and adds its place to the PATH. Then reopen the agent app and the terminal.

Verify downloads with SHA256SUMS and its minisign signature (SHA256SUMS.minisig).
The container image is ghcr.io/howashoji/looptrack:v1.0.0-rc.5.

This is a release candidate. See CHANGELOG.md for the full list of changes.


Looptrack 1.0.0 のリリース候補、5 つ目です。

rc.4 から上げる人へ、先にこれだけは。install.sh の 1 行の更新を、1 度だけ手で実行してください。自動更新が動かすのは、サーバに保存した写しのままです。新しい install.sh は、そのままでは入らない。コマンドは、ほかの手順と一緒に下の「rc.4 から上げるとき」に置きました。

v1.0.0-rc.4 からの変更:

  • 古い looptrack や kit は、サーバの URL を知っている 1 つのコマンドで直せます。以前の setup ツールが返していたのは --url の無い looptrack self-update && looptrack issue init … で、loop の答えがあれば 2 つ目の init まで続いていました。【配布スクリプトの更新】の案内も同じ。LOOPTRACK_API_URL の無い端末だと、この init はローカルモードに向く。この版では、setup ツールが返すコマンドを 1 つにした。中身は、looptrack を取得して SHA-256 を確かめ、--url・--source server・--dist を付けて init する、というもの。案内のほうはコマンドを示す代わりに、setup ツールを呼ぶよう伝えます。setup の結果と案内に出るコマンドは、どれも setup が置いた looptrack の絶対パスで書きます。guide・init・doctor・self-update・アカウント設定の画面も、サーバ版の利用者に --url の無い init や PATH の looptrack を案内しなくなりました。
  • サーバを install.sh で上げれば、利用者に配る looptrack も一緒に新しくなります。これまでの --upgrade(自動の置き換えも)が置き換えていたのは、サーバ自身の実行ファイルだけ。だから古い looptrack を使うセッションには、更新の知らせが出ませんでした。いまは入れるときにも --upgrade のたびにも、6 つの OS・CPU の組の実行ファイルを署名つきの SHA256SUMS で照合してから配布ディレクトリ(LOOPTRACK_DIST_DIR)へ置き、配る looptrack が無いかサーバより古ければ、looptrack serve が起動時のログと管理者の画面の帯で知らせる。
  • ~/.local/bin(Windows は %LOCALAPPDATA%\Programs\looptrack)の looptrack が配布物と違えば、setup の取得が置き換えます。例はデスクトップ版の symlink など。前は何があってもそのまま使っていました。取得を省くのは SHA-256 が一致するときだけ。symlink ならリンクを置き換え、リンクの先には触りません。
  • setup のコマンドは、シェルに何も残さない。以前は端末に貼ると LOOPTRACK_API_URL・LOOPTRACK_PROJECT が残り、別のプロジェクトに移っても looptrack が黙ってこちらを向いていたうえに、取得のコマンドまで変数と、/usr/bin/sum を覆い隠す関数 sum を置いたままにしていました。いまは sh ならサブシェルか export の無い前置で渡し、PowerShell なら & { } で包んで前の値に戻します。sh で取得に失敗すれば .part も消える。
  • looptrack の置き場が PATH に無ければ、setup の取得が足します。macOS・Linux は既定のシェルの起動ファイルに 1 行、Windows は利用者の環境変数 Path。足した後は AI のアプリと端末を開き直してください。それでも looptrack が見つからないなら、doctor とセッション開始時の要約が知らせて、直し方を示す。
  • install.sh が、同じポートにいるほかのプロセスの応答を、サービスの応答と取り違えなくなりました。止め忘れた古いコンテナなどがポートを握っていると、サービスは bind に失敗しているのに、インストールが終わったと報告していた。いまはポートを示して止まる。起動後はサービスが active かどうかに加えて、ss があれば、そのポートで待ち受けているのがサービスのメインのプロセスかまで確かめます。
  • install.sh は .env を読む前に確かめ、値は一切出さない。引用符で囲まない値に特殊な文字があると、シェルがその行(パスワードを含む)を出力したり、値の一部をコマンドとして実行したりしていたので、そういう行があればファイルを読む前に止まり、キーの名前だけを示すようにしました。
  • MySQL なら、端末の --upgrade は何かを止める前に新しい版の migrate --check を実行します。以前は LOOPTRACK_SETUP_MIGRATE_DSN が無いと、サービスを止めてから新しい表を作れずに失敗し、止まったままでした。未適用があってその変数も無いときは、一覧を示し、既定では何も変えずに止まる。
  • 秘密のガードと鮮度ガードの作業の記録は、引用符と行末の継続をシェルと同じように、posix と Windows の両方の読み方で読むので、\" の陰に秘密のファイルの cat を隠したコマンドも確認になります。これまで確認・記録していたものが素通りになることはない。git ガードは変えていません。
  • CONTRIBUTING.md のビルド先は ./bin/looptrack に。配置・更新・AI エージェントのガイドと FAQ にも、上の変更を書き足しました。

rc.4 から上げるとき:

  • この版に DB の移行はありません。
  • 飛ばせないのはこれ。自動更新は、サーバに保存した install.sh の写しを動かし続けます。新しいものにするには、1 行の更新を 1 度だけ手で実行してください: curl -fsSL https://raw.githubusercontent.com/howashoji/looptrack/main/deploy/install.sh | sudo sh -s -- --upgrade。サーバが既にこの版でも、配布ディレクトリをそろえ、.env に LOOPTRACK_DIST_DIR を足す。起動し直すよう出たら、そのとおりに。
  • 古い setup が書いた compose.yaml なら、その --upgrade の前に services.looptrack.volumes へ - ./dist:/dist:ro を足します(MySQL の構成では volumes: が無いので、作ってから足す)。
  • install.sh が .env のある行で止まるようになったら、その値を単引用符で囲んでください(KEY='…')。
  • サーバが新しい looptrack を配り始めると、古いものを使うセッションに【配布スクリプトの更新】が出ます。AI に setup ツールを呼ばせて、返った手順を実行する。それで looptrack が置き換わり、その置き場が PATH に入ります。済んだら AI のアプリと端末を開き直してください。

ダウンロードしたものは SHA256SUMS と minisign の署名(SHA256SUMS.minisig)で確かめられます。
コンテナイメージは ghcr.io/howashoji/looptrack:v1.0.0-rc.5。

リリース候補です。変更の全部は CHANGELOG.md に。


Full Changelog: v1.0.0-rc.4...v1.0.0-rc.5

v1.0.0-rc.4

Choose a tag to compare

@github-actions github-actions released this 30 Sep 07:29

Fourth release candidate of Looptrack 1.0.0.

Changes since v1.0.0-rc.3:

  • MCP now works on a server that listens on 127.0.0.1 behind a reverse proxy, as install.sh sets up with systemd. Every MCP request to such a server was refused with 403 by the MCP library's protection against DNS rebinding. looptrack now checks the Host itself: a request received on a loopback address is accepted when its Host is a loopback name or the host of LOOPTRACK_PUBLIC_URL, and refused with 403 otherwise. The desktop app still accepts only loopback names.
  • looptrack migrate works with the minimum MySQL grants when there is nothing to apply. Before, it failed with error 1142 on every run, so the automatic update of a MySQL server failed and put the previous version back every time.
  • The automatic server update puts the previous version back once it has stopped the service, whatever makes it fail (a failing systemctl daemon-reload or systemctl start, any other failing command, or an interruption), and leaves the reason in journalctl -u looptrack-upgrade. A manual --upgrade on a terminal still does not roll back.
  • install.sh gives the right reason when --auto-upgrade on stops for lack of curl and wget, and shows the dnf commands (minisign from EPEL) next to the apt ones.
  • Plainer wording across the README and the guides, and CHANGELOG.md now carries each version in English followed by Japanese.

Upgrading from rc.3:

  • This version adds no database migrations.
  • The automatic update keeps running the copy of install.sh saved on the server. To get the fixed rollback, run the one-line upgrade once by hand: curl -fsSL https://raw.githubusercontent.com/howashoji/looptrack/main/deploy/install.sh | sudo sh -s -- --upgrade.
  • If MCP clients were refused with 403 by a server behind a reverse proxy, check that LOOPTRACK_PUBLIC_URL holds the public URL the clients use.

Verify downloads with SHA256SUMS and its minisign signature (SHA256SUMS.minisig).
The container image is ghcr.io/howashoji/looptrack:v1.0.0-rc.4.

This is a release candidate. See CHANGELOG.md for the full list of changes.


Looptrack 1.0.0 のリリース候補、4 つ目です。

v1.0.0-rc.3 からの変更:

  • 127.0.0.1 で待ち受けてリバースプロキシの後ろに置いたサーバでも、MCP が使えるようになりました。install.sh が systemd で入れる形がこれに当たります。こうしたサーバでは、MCP のライブラリの DNS rebinding の対策が、MCP の要求をすべて 403 で拒否していました。いまは looptrack 自身が Host を判定します。ループバックのアドレスで受けた要求は、Host がループバックの名前か LOOPTRACK_PUBLIC_URL のホストなら通し、それ以外は 403 で拒否します。デスクトップ版は、これまでどおりループバックの名前だけを通します。
  • MySQL の最小の権限でも、適用するものが無ければ looptrack migrate が通るようになりました。これまでは毎回エラー 1142 で失敗し、MySQL のサーバの自動更新は毎回失敗して前の版に戻っていました。
  • サーバの自動更新は、サービスを止めた後なら、何で失敗しても前の版に戻します(systemctl daemon-reload や systemctl start の失敗、途中のほかのコマンドの失敗、中断)。理由は journalctl -u looptrack-upgrade に残ります。端末で手動で実行する --upgrade は、これまでどおり戻しません。
  • curl も wget も無いために --auto-upgrade on が止まるとき、install.sh が正しい理由を示すようになりました。apt に並べて dnf のコマンドも示します(minisign は EPEL から)。
  • README とガイドの言い回しを平易にしました。CHANGELOG.md は各版を英語の後に日本語で載せます。

rc.3 から上げるとき:

  • この版に DB の移行はありません。
  • 自動更新は、サーバに保存した install.sh の写しを動かし続けます。直った戻し方を使うには、1 行の更新を 1 度だけ手で実行してください: curl -fsSL https://raw.githubusercontent.com/howashoji/looptrack/main/deploy/install.sh | sudo sh -s -- --upgrade。
  • リバースプロキシの後ろのサーバで MCP のクライアントが 403 で拒否されていたなら、LOOPTRACK_PUBLIC_URL にクライアントが使う公開の URL が入っていることを確かめてください。

ダウンロードしたものは SHA256SUMS と minisign の署名(SHA256SUMS.minisig)で確かめられます。
コンテナイメージは ghcr.io/howashoji/looptrack:v1.0.0-rc.4。

リリース候補です。変更の全部は CHANGELOG.md にあります。


Full Changelog: v1.0.0-rc.3...v1.0.0-rc.4

v1.0.0-rc.3

Choose a tag to compare

@github-actions github-actions released this 29 Sep 09:04

Third release candidate of Looptrack 1.0.0.

Changes since v1.0.0-rc.2:

  • One-line server installer for Linux: curl -fsSL https://raw.githubusercontent.com/howashoji/looptrack/main/deploy/install.sh | sudo sh downloads the release archive, checks it against SHA256SUMS (and its minisign signature when minisign is installed), installs looptrack and, with MySQL, applies the minimum grants in the same run. The grants are built in as looptrack grants print|apply, and looptrack setup creates a missing MySQL database.
  • GitHub Releases now ship the server binaries as _server archives (.tar.gz for Linux and macOS, .zip for Windows) instead of bare binaries.
  • New-version notices in the desktop app and the server, one-click updates of the desktop app on macOS and Linux, a database backup before each upgrade in the desktop app, and opt-in daily automatic updates for systemd servers (install.sh --auto-upgrade on).
  • CLI: - reads comment and body text from standard input; a note when an issue is started with template acceptance criteria.
  • Fixes: self-update checks the listed version against the signature; an older looptrack refuses a database migrated by a newer one; MCP setup keeps an existing looptrack; token accounting covers every operation that records an event; export and import respect archived projects; several hook fixes.
  • New "Token reports" guide, and the "Updating" guide covers the new-version notices and automatic updates.

Upgrading from rc.1 or rc.2:

  • Servers installed with an earlier install.sh upgrade with curl -fsSL https://raw.githubusercontent.com/howashoji/looptrack/main/deploy/install.sh | sudo sh -s -- --upgrade.
  • This version adds database migrations 0005 and 0006. With MySQL and the minimum grants, the new table needs a grant (install.sh --upgrade asks for it, or run looptrack grants apply). Once migrated, do not put rc.1 or rc.2 back on the database.
  • After looptrack self-update, run looptrack issue init again in each project.

Verify downloads with SHA256SUMS and its minisign signature (SHA256SUMS.minisig).
The container image is ghcr.io/howashoji/looptrack:v1.0.0-rc.3.

This is a release candidate. See CHANGELOG.md for the full list of changes.


Looptrack 1.0.0 のリリース候補、3 つ目です。

v1.0.0-rc.2 からの変更:

  • Linux のサーバが 1 行で入るようになりました。curl -fsSL https://raw.githubusercontent.com/howashoji/looptrack/main/deploy/install.sh | sudo sh を実行すると、リリースの書庫を取ってきて SHA256SUMS で照合します(minisign が入っていれば署名も確かめる)。そのうえで looptrack を入れ、MySQL なら最小の権限の付与まで同じ流れで済ませます。権限は looptrack grants print|apply として本体に組み込みました。looptrack setup は、MySQL のデータベースが無ければ作ります。
  • GitHub Releases のサーバは、むき出しのバイナリをやめて _server の書庫で配ります(Linux と macOS は .tar.gz、Windows は .zip)。
  • 新しい版のお知らせ。デスクトップ版とサーバの両方に入りました。macOS と Linux のデスクトップ版はワンクリックで更新でき、更新の前には DB を控えます。systemd で動かすサーバは、毎日の自動更新を選んで有効にできます(install.sh --auto-upgrade on)。
  • CLI: コメントと本文を - で標準入力から読めます。雛形の受け入れ条件のまま着手すると、ひとこと知らせます。
  • 直したもの。self-update は一覧に載った版を署名と突き合わせます。新しい looptrack が移行した DB は、古い looptrack が拒否します。MCP の setup は既にある looptrack を残します。イベントを記録する操作は、どれもトークンの集計に入ります。エクスポートとインポートは、アーカイブしたプロジェクトをアーカイブのまま扱います。hook もいくつか直しました。
  • ガイドに「トークンレポート」が加わりました。「更新」のガイドでは、新しい版のお知らせと自動更新も説明しています。

rc.1・rc.2 から上げるとき:

  • 以前の install.sh で入れたサーバは、curl -fsSL https://raw.githubusercontent.com/howashoji/looptrack/main/deploy/install.sh | sudo sh -s -- --upgrade で上がります。
  • この版で DB の移行 0005 と 0006 が入ります。MySQL を最小の権限で使っているなら、新しいテーブルに権限が要ります(install.sh --upgrade が尋ねます。looptrack grants apply でも付けられます)。移行が済んだ DB に rc.1 や rc.2 を戻さないでください。
  • looptrack self-update の後は、各プロジェクトで looptrack issue init をもう一度。

ダウンロードしたものは SHA256SUMS と minisign の署名(SHA256SUMS.minisig)で確かめられます。
コンテナイメージは ghcr.io/howashoji/looptrack:v1.0.0-rc.3。

リリース候補です。変更の全部は CHANGELOG.md にあります。


Full Changelog: v1.0.0-rc.2...v1.0.0-rc.3

v1.0.0-rc.2

Choose a tag to compare

@github-actions github-actions released this 25 Sep 03:42

Second release candidate of Looptrack 1.0.0.

Changes since v1.0.0-rc.1:

  • Projects can be renamed, archived and restored from the admin page and the server command line (looptrack project rename, archive / unarchive, list --archived). An archived project leaves every listing and refuses new issues, updates and comments, while its history is kept. Adds database migration 0004 (projects.archived_at).
  • MCP: a create_project tool. MCP responses carry X-Accel-Buffering: no, so proxies do not buffer them.
  • Desktop edition: the tray opens its menu on left click, and the menu gains Settings and always shows the version.
  • The remaining Japanese-only messages (MCP prompts, server messages, credentials, import, setup templates, hooks, verify, desktop) are now available in English.
  • Loop kit: a hook that asks for an explicit model when starting a subagent, and fixes to the git and secrets guards.
  • New guides: setting up by pasting a prompt into your AI, updating, and using the desktop edition without the CLI.

Verify downloads with SHA256SUMS and its minisign signature (SHA256SUMS.minisig).
The container image is ghcr.io/howashoji/looptrack:v1.0.0-rc.2.

This is a pre-release. See CHANGELOG.md for the full list of changes.


Looptrack 1.0.0 のリリース候補、2 つ目です。

v1.0.0-rc.1 からの変更:

  • プロジェクトの名前変更・アーカイブ・復元が、管理画面とサーバのコマンド(looptrack project rename・archive / unarchive・list --archived)でできるようになりました。アーカイブしたプロジェクトは一覧から消え、新しいイシュー・更新・コメントを受け付けません。けど、履歴は残ります。DB の移行 0004(projects.archived_at)が入ります。
  • MCP: create_project のツールを足しました。MCP の応答には X-Accel-Buffering: no が付くので、プロキシに溜められません。
  • デスクトップ版: トレイは左クリックでメニューが開きます。メニューに「設定」が加わり、版もいつも出ます。
  • 日本語だけだった残りのメッセージ(MCP の prompt・サーバのメッセージ・資格情報・インポート・setup の雛形・hook・verify・デスクトップ版)にも英語が付きました。
  • loop の kit: サブエージェントを起こすとき、モデルを明示するよう求める hook を足しました。git と秘密のガードも直しています。
  • 新しいガイドは 3 つ。AI にプロンプトを貼って導入する方法、更新、CLI を使わずにデスクトップ版を使う方法です。

ダウンロードしたものは SHA256SUMS と minisign の署名(SHA256SUMS.minisig)で確かめられます。
コンテナイメージは ghcr.io/howashoji/looptrack:v1.0.0-rc.2。

プレリリースです。変更の全部は CHANGELOG.md にあります。


Full Changelog: v1.0.0-rc.1...v1.0.0-rc.2

v1.0.0-rc.1

Choose a tag to compare

@github-actions github-actions released this 24 Sep 09:28

First release candidate of Looptrack 1.0.0.

Looptrack is a tool that makes it easy to bring loop engineering into AI-driven development. An AI can remember its work only as far as its context window reaches, so across sessions it may repeat work or skip it. Looptrack is a task memory kept outside the AI, shared by every session and every member of a team.

One Go executable serves as the server (REST API, web UI, MCP), the command-line client, the agent hooks and a desktop edition.

Highlights:

  • Per-project ID prefixes, rules enforced by the server, append-only comments and events.
  • next / verify / summary commands that drive the work loop.
  • Hooks and rules for Claude Code, Codex and GitHub Copilot, installed with looptrack issue init.
  • Japanese and English user interface, messages and documentation.
  • Server, CLI and desktop builds for Linux, macOS and Windows.

Verify downloads with SHA256SUMS and its minisign signature (SHA256SUMS.minisig).
The container image is ghcr.io/howashoji/looptrack:v1.0.0-rc.1.

This is a pre-release. See CHANGELOG.md for the full list of changes.


Looptrack 1.0.0 の最初のリリース候補です。

Looptrack は、AI を使った開発にループエンジニアリングを取り入れやすくするツールです。AI が覚えていられるのは、コンテキストの窓に収まる範囲だけ。だからセッションをまたぐと、同じ作業をやり直したり、抜かしたりすることがあります。Looptrack はその作業の記憶を AI の外に置き、すべてのセッションとチームの全員で分け合います。

Go の実行ファイル 1 つが、サーバ(REST API・Web の画面・MCP)にも、コマンドラインのクライアントにも、エージェントの hook にも、デスクトップ版にもなります。

主な内容:

  • プロジェクトごとの ID の接頭辞。サーバが強制するルール。追記だけのコメントとイベント。
  • 作業のループを回す next / verify / summary のコマンド。
  • Claude Code・Codex・GitHub Copilot 向けの hook と規則。looptrack issue init で入ります。
  • 画面・メッセージ・文書は日本語と英語の両方。
  • Linux・macOS・Windows 向けのサーバ・CLI・デスクトップ版。

ダウンロードしたものは SHA256SUMS と minisign の署名(SHA256SUMS.minisig)で確かめられます。
コンテナイメージは ghcr.io/howashoji/looptrack:v1.0.0-rc.1。

プレリリースです。変更の全部は CHANGELOG.md にあります。

AppImage runtime corresponding source (LGPL-2.1 s6d) - appimage-runtime-source-20251108

Choose a tag to compare

Corresponding source for the AppImage runtime (type2-runtime) statically
linked into this project's AppImage builds, provided under LGPL-2.1 s6(d).

Includes the runtime's own source and the source of each statically
linked component (libfuse, musl libc, squashfuse, zstd, zlib, mimalloc).
See SHA256SUMS for the checksum of each file.

This release is not tied to a specific looptrack version; it covers every
looptrack release that uses AppImage runtime tag 20251108. See
deploy/release/licenses/runtime-components.json in the looptrack
repository for the exact build environment and any patches applied.