Compare commits

...
10 Commits
Author SHA1 Message Date
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
e0a43c81f9 chore: release v0.1.3 (#56)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-13 00:28:13 +01:00
Vlad Frolov bada79ba4a ci: Enabled builds caching during CI/CD 2026-02-13 00:17:55 +01:00
Vlad Frolov a70c89d9e3 ci: Disabled npm publishing as the name is already taken 2026-02-13 00:17:55 +01:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
247445f819 chore: release v0.1.2 (#55)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-12 23:47:16 +01:00
Vlad Frolov 14254a699f docs: Added Installation instructions for the pre-built binaries 2026-02-12 23:42:46 +01:00
Vlad Frolov 2039442885 ci: Disabled Windows ARM64 builds as auto-updater [provided by cargo-dist] does not support this platform yet and it is not a common platform for us to support 2026-02-12 23:41:27 +01:00
Vlad Frolov e796b838fa ci: Skip creating GitHub Release with release-plz [cargo-dist will do it in the release workflow] 2026-02-12 23:11:30 +01:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
54ce7434fb chore: release v0.1.1 (#54)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-12 23:09:48 +01:00
Vlad Frolov e9e0374c85 ci: Renamed the secrets in release-plz.yml to match the configuration 2026-02-12 23:05:30 +01:00
Vlad Frolov 5582a0dfbf ci: Make sure that the binaries release CD it kicking in after release-plz 2026-02-12 22:55:08 +01:00
9 changed files with 87 additions and 44 deletions
+2 -1
View File
@@ -8,12 +8,13 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v6
- name: Install Rust - name: Install Rust
uses: dtolnay/rust-toolchain@stable uses: dtolnay/rust-toolchain@stable
with: with:
profile: minimal profile: minimal
components: rustfmt, clippy components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
- name: Check formatting - name: Check formatting
run: | run: |
cargo fmt --all -- --check cargo fmt --all -- --check
+13 -1
View File
@@ -24,12 +24,23 @@ jobs:
- &install-rust - &install-rust
name: Install Rust toolchain name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
# Generating a GitHub token, so that PRs and tags created by
# the release-plz-action can trigger actions workflows.
- name: Generate GitHub token
uses: actions/create-github-app-token@v2
id: generate-token
with:
# GitHub App ID secret name
app-id: ${{ secrets.GH_RELEASES_MANAGER_APP_ID }}
# GitHub App private key secret name
private-key: ${{ secrets.GH_RELEASES_MANAGER_APP_PRIVATE_KEY }}
- name: Run release-plz - name: Run release-plz
uses: release-plz/[email protected] uses: release-plz/[email protected]
with: with:
command: release command: release
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
# Create a PR with the new versions and changelog, preparing the next release. # Create a PR with the new versions and changelog, preparing the next release.
@@ -46,6 +57,7 @@ jobs:
steps: steps:
- *checkout - *checkout
- *install-rust - *install-rust
- uses: Swatinem/rust-cache@v2
- name: Run release-plz - name: Run release-plz
uses: release-plz/[email protected] uses: release-plz/[email protected]
with: with:
+9 -33
View File
@@ -1,4 +1,4 @@
# This file was autogenerated by dist: https://opensource.axo.dev/cargo-dist/ # This file was autogenerated by dist: https://axodotdev.github.io/cargo-dist
# #
# Copyright 2022-2024, axodotdev # Copyright 2022-2024, axodotdev
# SPDX-License-Identifier: MIT or Apache-2.0 # SPDX-License-Identifier: MIT or Apache-2.0
@@ -58,6 +58,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
persist-credentials: false
submodules: recursive submodules: recursive
- name: Install dist - name: Install dist
# we specify bash to get pipefail; it guards against the `curl` command # we specify bash to get pipefail; it guards against the `curl` command
@@ -117,6 +118,7 @@ jobs:
git config --global core.longpaths true git config --global core.longpaths true
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
persist-credentials: false
submodules: recursive submodules: recursive
- name: Install Rust non-interactively if not already installed - name: Install Rust non-interactively if not already installed
if: ${{ matrix.container }} if: ${{ matrix.container }}
@@ -179,6 +181,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
persist-credentials: false
submodules: recursive submodules: recursive
- name: Install cached dist - name: Install cached dist
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
@@ -218,8 +221,8 @@ jobs:
- plan - plan
- build-local-artifacts - build-local-artifacts
- build-global-artifacts - build-global-artifacts
# Only run if we're "publishing", and only if local and global didn't fail (skipped is fine) # Only run if we're "publishing", and only if plan, local and global didn't fail (skipped is fine)
if: ${{ always() && needs.plan.outputs.publishing == 'true' && (needs.build-global-artifacts.result == 'skipped' || needs.build-global-artifacts.result == 'success') && (needs.build-local-artifacts.result == 'skipped' || needs.build-local-artifacts.result == 'success') }} if: ${{ always() && needs.plan.result == 'success' && needs.plan.outputs.publishing == 'true' && (needs.build-global-artifacts.result == 'skipped' || needs.build-global-artifacts.result == 'success') && (needs.build-local-artifacts.result == 'skipped' || needs.build-local-artifacts.result == 'success') }}
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
runs-on: "ubuntu-22.04" runs-on: "ubuntu-22.04"
@@ -228,6 +231,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
persist-credentials: false
submodules: recursive submodules: recursive
- name: Install cached dist - name: Install cached dist
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
@@ -278,47 +282,19 @@ jobs:
gh release create "${{ needs.plan.outputs.tag }}" --target "$RELEASE_COMMIT" $PRERELEASE_FLAG --title "$ANNOUNCEMENT_TITLE" --notes-file "$RUNNER_TEMP/notes.txt" artifacts/* gh release create "${{ needs.plan.outputs.tag }}" --target "$RELEASE_COMMIT" $PRERELEASE_FLAG --title "$ANNOUNCEMENT_TITLE" --notes-file "$RUNNER_TEMP/notes.txt" artifacts/*
publish-npm:
needs:
- plan
- host
runs-on: "ubuntu-22.04"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PLAN: ${{ needs.plan.outputs.val }}
if: ${{ !fromJson(needs.plan.outputs.val).announcement_is_prerelease || fromJson(needs.plan.outputs.val).publish_prereleases }}
steps:
- name: Fetch npm packages
uses: actions/download-artifact@v4
with:
pattern: artifacts-*
path: npm/
merge-multiple: true
- uses: actions/setup-node@v4
with:
node-version: '20.x'
registry-url: 'https://registry.npmjs.org'
- run: |
for release in $(echo "$PLAN" | jq --compact-output '.releases[] | select([.artifacts[] | endswith("-npm-package.tar.gz")] | any)'); do
pkg=$(echo "$release" | jq '.artifacts[] | select(endswith("-npm-package.tar.gz"))' --raw-output)
npm publish --access public "./npm/${pkg}"
done
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
announce: announce:
needs: needs:
- plan - plan
- host - host
- publish-npm
# use "always() && ..." to allow us to wait for all publish jobs while # use "always() && ..." to allow us to wait for all publish jobs while
# still allowing individual publish jobs to skip themselves (for prereleases). # still allowing individual publish jobs to skip themselves (for prereleases).
# "host" however must run to completion, no skipping allowed! # "host" however must run to completion, no skipping allowed!
if: ${{ always() && needs.host.result == 'success' && (needs.publish-npm.result == 'skipped' || needs.publish-npm.result == 'success') }} if: ${{ always() && needs.host.result == 'success' }}
runs-on: "ubuntu-22.04" runs-on: "ubuntu-22.04"
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
persist-credentials: false
submodules: recursive submodules: recursive
+2 -1
View File
@@ -11,10 +11,11 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v6
- name: Install Rust - name: Install Rust
uses: dtolnay/rust-toolchain@stable uses: dtolnay/rust-toolchain@stable
with: with:
profile: minimal profile: minimal
- uses: Swatinem/rust-cache@v2
- name: Run Tests - name: Run Tests
run: cargo test --all-features -- --nocapture run: cargo test --all-features -- --nocapture
+21
View File
@@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.1.3](https://github.com/nearai/ironclaw/compare/v0.1.2...v0.1.3) - 2026-02-12
### Other
- Enabled builds caching during CI/CD
- Disabled npm publishing as the name is already taken
## [0.1.2](https://github.com/nearai/ironclaw/compare/v0.1.1...v0.1.2) - 2026-02-12
### Other
- Added Installation instructions for the pre-built binaries
- Disabled Windows ARM64 builds as auto-updater [provided by cargo-dist] does not support this platform yet and it is not a common platform for us to support
## [0.1.1](https://github.com/nearai/ironclaw/compare/v0.1.0...v0.1.1) - 2026-02-12
### Other
- Renamed the secrets in release-plz.yml to match the configuration
- Make sure that the binaries release CD it kicking in after release-plz
## [0.1.0](https://github.com/nearai/ironclaw/releases/tag/v0.1.0) - 2026-02-12 ## [0.1.0](https://github.com/nearai/ironclaw/releases/tag/v0.1.0) - 2026-02-12
### Added ### Added
Generated
+1 -1
View File
@@ -2291,7 +2291,7 @@ dependencies = [
[[package]] [[package]]
name = "ironclaw" name = "ironclaw"
version = "0.1.0" version = "0.1.3"
dependencies = [ dependencies = [
"aes-gcm", "aes-gcm",
"aho-corasick", "aho-corasick",
+3 -6
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "ironclaw" name = "ironclaw"
version = "0.1.0" version = "0.1.3"
edition = "2024" edition = "2024"
rust-version = "1.85" rust-version = "1.85"
description = "Secure personal AI assistant that protects your data and expands its capabilities on the fly" description = "Secure personal AI assistant that protects your data and expands its capabilities on the fly"
@@ -146,18 +146,16 @@ lto = "thin"
[workspace.metadata.dist] [workspace.metadata.dist]
# The preferred dist version to use in CI (Cargo.toml SemVer syntax) # The preferred dist version to use in CI (Cargo.toml SemVer syntax)
cargo-dist-version = "0.30.3" cargo-dist-version = "0.30.3"
allow-dirty = ["ci"]
# CI backends to support # CI backends to support
ci = "github" ci = "github"
# The installers to generate for each app # The installers to generate for each app
installers = ["shell", "powershell", "npm", "msi"] installers = ["shell", "powershell", "npm", "msi"]
# Publish jobs to run in CI # Publish jobs to run in CI
publish-jobs = ["npm"] publish-jobs = []
# Target platforms to build apps for (Rust target-triple syntax) # Target platforms to build apps for (Rust target-triple syntax)
targets = [ targets = [
"aarch64-apple-darwin", "aarch64-apple-darwin",
"aarch64-unknown-linux-gnu", "aarch64-unknown-linux-gnu",
"aarch64-pc-windows-msvc",
"x86_64-apple-darwin", "x86_64-apple-darwin",
"x86_64-unknown-linux-gnu", "x86_64-unknown-linux-gnu",
"x86_64-pc-windows-msvc", "x86_64-pc-windows-msvc",
@@ -171,12 +169,11 @@ pr-run-mode = "upload"
# Path that installers should place binaries in # Path that installers should place binaries in
install-path = "CARGO_HOME" install-path = "CARGO_HOME"
# Whether to install an updater program # Whether to install an updater program
install-updater = false install-updater = true
[workspace.metadata.dist.github-custom-runners] [workspace.metadata.dist.github-custom-runners]
aarch64-unknown-linux-gnu = "ubuntu-24.04-arm" aarch64-unknown-linux-gnu = "ubuntu-24.04-arm"
x86_64-unknown-linux-gnu = "ubuntu-22.04" x86_64-unknown-linux-gnu = "ubuntu-22.04"
x86_64-pc-windows-msvc = "windows-2022" x86_64-pc-windows-msvc = "windows-2022"
aarch64-pc-windows-msvc = "windows-2025"
x86_64-apple-darwin = "macos-15-intel" x86_64-apple-darwin = "macos-15-intel"
aarch64-apple-darwin = "macos-14" aarch64-apple-darwin = "macos-14"
+34 -1
View File
@@ -71,7 +71,38 @@ IronClaw is the AI assistant you can actually trust with your personal and profe
- PostgreSQL 15+ with [pgvector](https://github.com/pgvector/pgvector) extension - PostgreSQL 15+ with [pgvector](https://github.com/pgvector/pgvector) extension
- NEAR AI account (authentication handled via setup wizard) - NEAR AI account (authentication handled via setup wizard)
### Build ## Download or Build
Visit [Releases page](https://github.com/nearai/ironclaw/releases/) to see the latest updates.
<details>
<summary>Install via Windows Installer (Windows)</summary>
Download the [Windows Installer](https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-x86_64-pc-windows-msvc.msi) and run it.
</details>
<details>
<summary>Install via powershell script (Windows)</summary>
```sh
irm https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.ps1 | iex
```
</details>
<details>
<summary>Install via shell script (macOS, Linux, Windows/WSL)</summary>
```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.sh | sh
```
</details>
<details>
<summary>Compile the source code (Cargo on Windows, Linux, macOS)</summary>
Install it with `cargo`, just make sure you have [Rust](https://rustup.rs) installed on your computer.
```bash ```bash
# Clone the repository # Clone the repository
@@ -87,6 +118,8 @@ cargo test
For **full release** (after modifying channel sources), run `./scripts/build-all.sh` to rebuild channels first. For **full release** (after modifying channel sources), run `./scripts/build-all.sh` to rebuild channels first.
</details>
### Database Setup ### Database Setup
```bash ```bash
+2
View File
@@ -0,0 +1,2 @@
[workspace]
git_release_enable = false