Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
# TAURI_SIGNING_PRIVATE_KEY - Tauri updater signing private key
# TAURI_SIGNING_PRIVATE_KEY_PASSWORD
# Until those exist, builds will be unsigned and the install script will warn.
# 3. To cut a release: `git tag v0.1.17 && git push origin v0.1.17`.
# 3. To cut a release: `git tag v0.1.20 && git push origin v0.1.20`.
# The workflow creates a draft release; review it on GitHub and hit Publish.

name: Release
Expand All @@ -50,8 +50,22 @@ permissions:
contents: write

jobs:
release-preflight:
name: Validate release configuration
runs-on: ubuntu-22.04
steps:
- name: Require updater signing key
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
run: |
if [ -z "$TAURI_SIGNING_PRIVATE_KEY" ]; then
echo "::error::TAURI_SIGNING_PRIVATE_KEY is required because createUpdaterArtifacts is enabled."
exit 1
fi

release:
name: Build (${{ matrix.label }})
needs: release-preflight
strategy:
# One platform failing should not abort the others; users on
# working platforms still get installers.
Expand Down Expand Up @@ -112,7 +126,7 @@ jobs:
libssl-dev

- name: Install npm dependencies
run: npm install
run: npm ci

- name: Prepare Windows signing config
if: matrix.platform == 'windows-latest'
Expand Down
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,25 @@

All notable changes to Jarvis are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.21] - 2026-06-07

### Added

- Added a persistent provider/model picker; `/model` now opens it or accepts a provider and model directly.
- Added automatic Windows file-path detection so referenced files are included in AI context.
- Added a five-track hosted ambient playlist ready for public Cloudflare R2 URLs, with sequential repeat playback.

### Fixed

- Built-in Jarvis agents now honor the selected provider and model.
- Real provider failures are surfaced instead of silently returning unrelated canned mock responses.
- Mock mode clearly identifies itself and no longer pretends to analyze unavailable context.
- Reminder channels, completion notifications, and desktop notification permission handling now behave correctly.

### Release

- Built and updater-signed Windows NSIS/MSI artifacts for the silent `0.1.21` update.

## [0.1.20] - 2026-06-06

### Added
Expand All @@ -20,11 +39,18 @@ All notable changes to Jarvis are documented here. Format follows [Keep a Change
- Windows release packaging now validates that the updater private key's sibling `.pub` file matches the public key embedded in Tauri config before building.
- Removed local helper files that copied updater private-key material into the repository worktree.

### Fixed

- Reminder delivery now respects each reminder's `banner` and `in_app` channels instead of always sending both surfaces.
- Ordinary task edits no longer emit a false "Task done" notification; actual completion now emits it and closes scheduled reminders.
- Notification permission checks now use the Tauri notification plugin on desktop, including the onboarding permission step.

### Release

- Generated updater-signed 0.1.20 NSIS/MSI artifacts, `latest.json`, and current-artifact SHA-256 checksums.
- The updater manifest now targets the stable hyphenated GitHub asset name so release filename normalization cannot break downloads.
- Verified a silent per-user NSIS upgrade from 0.1.19 to 0.1.20 and confirmed the relaunched executable reports version 0.1.20.
- Fixed the cross-platform GitHub Release workflow by adding the `tauri` npm script expected by `tauri-action`, switching dependency installation to `npm ci`, and adding an explicit updater-key secret preflight.
- Windows Authenticode signing remains separate from Tauri updater signing and still requires `WINDOWS_CERT_BASE64` or `WINDOWS_CERT_THUMBPRINT`.

## [0.1.19] - 2026-06-06
Expand Down
19 changes: 19 additions & 0 deletions DEVLOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
## 2026-06-07 - v0.1.21 AI, Music, and Notification Update

- Replaced procedural ambient synthesis with a five-track hosted playlist that advances in order and repeats.
- Added placeholder Cloudflare R2 URLs for later replacement with final music links.
- Reworked `/model` and the composer picker to persist a real provider/model pair and route built-in Jarvis through it.
- Limited the chat picker to implemented adapters instead of providers that still route to mock.
- Added automatic absolute Windows file-path extraction so file-summary prompts receive referenced file content.
- Removed silent fallback from failed real providers to canned mock prose; API failures now remain visible.
- Added regression tests for model routing, model catalogs, file paths, reminder channels, and task completion.
- Verified `209` tests, TypeScript typecheck, and the production frontend build.

---

## 2026-06-06 - v0.1.20 Plugins Major Update

**Actor:** Codex
Expand All @@ -24,8 +37,14 @@
- `npm run release:windows` generated matching 0.1.20 NSIS/MSI updater signatures with the private key selected only after its sibling `.pub` matched `tauri.conf.json`.
- `npm run release:stage` completed cleanly and regenerated `releases/latest.json` plus current-only `releases/SHA256SUMS.txt`.
- Public release verification caught GitHub's space-to-period asset-name normalization; the manifest generator now prefers the stable hyphenated NSIS asset and the published manifest was replaced.
- The public `v0.1.20` release contains the locally verified Windows NSIS/MSI artifacts, updater signatures, `latest.json`, and `SHA256SUMS.txt`.
- The silent local NSIS upgrade completed with exit code 0; `%LOCALAPPDATA%\Jarvis One\jarvis.exe` and the relaunched process both report `ProductVersion=0.1.20`.
- The first tagged cross-platform Release run failed before compilation because `tauri-action` invokes `npm run tauri build` and the app package exposed only `tauri:build`. Added the expected `tauri` script, changed workflow installs to `npm ci`, and added an explicit `TAURI_SIGNING_PRIVATE_KEY` preflight.
- A follow-up run from the stale `v0.1.20` tag reproduced the same missing-script failure on Linux, Windows, and macOS ARM; the remaining queued macOS x64 job was cancelled after confirmation.
- The GitHub repository currently has no Actions secrets configured, so a future updater-producing matrix release will stop at the new preflight until the maintainer deliberately installs the updater key and optional platform signing credentials.
- The Windows installer is updater-signed but remains Authenticode `NotSigned` because no trusted Windows certificate is configured. macOS/Linux build, signing, and runtime verification remain pending.
- Reminder dispatch now honors `banner` versus `in_app` channels, task-completion notifications fire only from the completion path, and onboarding requests desktop notification permission through the Tauri plugin rather than the browser-only API.
- Added focused notification and task-service regression coverage for channel isolation, false completion suppression, and scheduled-reminder closure.

---

Expand Down
2 changes: 1 addition & 1 deletion app/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@jarvis/app",
"version": "0.1.20",
"version": "0.1.21",
"private": true,
"type": "module",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion app/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "jarvis"
version = "0.1.20"
version = "0.1.21"
description = "The AI workspace where every model, agent, voice, and task lives under one persistent memory and one always-available assistant."
authors = ["Jarvis"]
edition = "2021"
Expand Down
2 changes: 1 addition & 1 deletion app/src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Jarvis One",
"version": "0.1.20",
"version": "0.1.21",
"identifier": "ai.jarvis.desktop",
"build": {
"beforeDevCommand": "npm run jarvis",
Expand Down
Loading