Commit Graph

79 Commits

Author SHA1 Message Date
Alexandre ETEOCLE
ef0e85b053 ci: add rpm bundle to linux release workflows
Adds RPM generation, validation, intermediate artifact upload, and final GitHub Release publish patterns for Linux alpha and stable workflows.
2026-04-29 22:04:34 +02:00
lucaronin
cf6ad71fff ci: de-duplicate coverage-backed test lane 2026-04-28 04:53:39 +02:00
lucaronin
9a292d2476 fix: map releases to Sentry 2026-04-27 15:27:31 +02:00
lucaronin
1136c1948e fix: clarify macos release artifact names 2026-04-26 14:29:47 +02:00
lucaronin
5b34ec2980 feat: publish intel mac builds 2026-04-26 06:07:33 +02:00
lucaronin
8207b87c33 fix: include linux signatures in stable release 2026-04-25 14:39:19 +02:00
lucaronin
ab4fcdbaae ci: include linux alpha updater signatures 2026-04-25 12:45:31 +02:00
lucaronin
b93e6d491a ci: test linux alpha release artifacts 2026-04-25 11:59:21 +02:00
lucaronin
4929f11b6d fix: harden windows release and git subprocesses 2026-04-25 00:58:49 +02:00
lucaronin
135a8a0adf fix: handle nested release artifacts 2026-04-24 19:48:56 +02:00
lucaronin
d6b3c0aef3 feat: add windows desktop release support 2026-04-24 19:23:55 +02:00
lucaronin
f896c01829 fix: publish linux stable release artifacts 2026-04-24 18:53:43 +02:00
lucaronin
38acebba7c feat: add linux desktop support 2026-04-24 16:25:36 +02:00
lucaronin
7e386ff70c docs: move contributing guide to repo root 2026-04-24 12:27:17 +02:00
Luca Rossi
309b816e6d Add custom funding URL to FUNDING.yml 2026-04-24 12:07:27 +02:00
lucaronin
9f6779e9f1 docs: add contributing guide 2026-04-24 11:46:35 +02:00
lucaronin
a6f1524a78 ci: reject placeholder telemetry secrets 2026-04-21 11:06:16 +02:00
lucaronin
97f285e3cb ci: upload coverage to codecov 2026-04-21 10:06:54 +02:00
lucaronin
7be5519f61 fix: sort alpha releases chronologically 2026-04-21 09:10:16 +02:00
lucaronin
03042bb49c fix: normalize shipped telemetry secrets 2026-04-19 23:27:57 +02:00
lucaronin
cee4bef179 fix: harden shipped telemetry config 2026-04-19 23:16:34 +02:00
lucaronin
ea14f1a389 fix: use rendered release note html 2026-04-19 20:53:39 +02:00
lucaronin
db21ae4708 feat: improve release history page 2026-04-19 20:37:53 +02:00
lucaronin
9ecefc90d5 feat: add stable landing page download link 2026-04-19 04:44:17 +02:00
lucaronin
edd5a1ce8f feat: align release version naming 2026-04-16 14:43:08 +02:00
lucaronin
2ad3d1cae1 fix: inject telemetry envs into release builds 2026-04-15 16:59:31 +02:00
lucaronin
9f46f22667 fix: skip alpha dmg packaging on CI 2026-04-14 15:39:33 +02:00
lucaronin
2b734da4cb fix: clear cached tauri bundle artifacts 2026-04-14 15:30:10 +02:00
lucaronin
73c619892b fix: rotate tauri target cache keys 2026-04-14 15:18:05 +02:00
lucaronin
c0fbb1c40e refactor: remove obsolete scripts tooling 2026-04-14 12:28:37 +02:00
lucaronin
5102923c9c fix: repair release workflow parsing 2026-04-13 17:24:03 +02:00
lucaronin
a4397d48de fix: split alpha and stable release channels 2026-04-12 22:14:53 +02:00
lucaronin
361898b187 refactor: rename app branding from Laputa to Tolaria 2026-04-12 01:35:34 +02:00
lucaronin
c68c0a6c10 test: slim the pre-push smoke lane 2026-04-07 19:22:11 +02:00
lucaronin
b384cbf6ee chore: enforce main-only workflow and adopt AGENTS.md 2026-04-07 18:42:41 +02:00
lucaronin
960ccde17f docs: update CI comment — average code health now 9.37 (was stale 8.9) 2026-03-27 17:58:28 +01:00
lucaronin
71f6f4cc5d refactor: reduce complexity in parsing.rs and noteListHelpers.ts (gate: 9.31 → 9.33)
Refactored two files to improve code health:

1. src-tauri/src/vault/parsing.rs (7.9 → 8.54, +0.64)
   - Extracted helper functions to reduce nesting in strip_markdown_chars
     (process_wikilink, extract_wikilink_display, process_markdown_link)
   - Refactored strip_list_marker to eliminate bumpy road pattern
     (strip_unordered_marker, strip_ordered_marker)

2. src/utils/noteListHelpers.ts (9.28 → 10.0, +0.72)
   - Reduced cyclomatic complexity in isInboxEntry from 15 to ~4
     (hasAnyValidLinks, hasValidBodyLinks, hasValidFrontmatterLinks)
   - Extracted complex conditional into wasCreatedBeforeLastModification

Gate threshold raised: 9.31 → 9.33 (conservative, pending CodeScene re-analysis)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 07:10:06 +01:00
lucaronin
2799d8f0a6 feat: add canary release channel and local feature flags
Add update_channel setting (stable/canary) to Settings with UI toggle.
Stable channel uses Tauri updater plugin; canary fetches latest-canary.json
and opens GitHub release page for manual download. Add useFeatureFlag()
hook with localStorage overrides and compile-time defaults (no remote
dependencies). Add release-canary.yml CI workflow for canary branch builds.
Update stable workflow to preserve latest-canary.json on GH Pages.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 17:51:33 +01:00
lucaronin
ad9d0e5e67 refactor: RelationshipsPanel — extract shared hooks to reduce complexity (avg: 9.36, gate: 8.90 → 9.31)
Extract useSearchKeyboard, useCreateAndOpen, and useCreateOption hooks from
duplicated logic in InlineAddNote, NoteTargetInput, and AddRelationshipForm.
File score: 7.8 → 8.48. Raise average code health gate threshold to 9.31.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 09:46:15 +01:00
lucaronin
e47625f8bb ci: add Average Code Health gate (≥8.9 floor, target 9.5) to CI, pre-commit, pre-push
- Both hotspot (≥9.5) and average (≥8.9) gates now block commit/push/CI
- Current average: 8.97 — threshold set at 8.9 to block regressions without
  blocking the current state; aspirational target remains 9.5
- pre-commit: replaced phantom pre_commit_code_health_safeguard with real inline check
- pre-push: CodeScene step is now blocking (was informational-only)
- CLAUDE.md: explicit instructions to monitor both scores via MCP CodeScene
2026-03-24 15:47:31 +01:00
lucaronin
ce7b5f93d3 ci: raise hotspot code health threshold to 9.5
Current score: 9.53. Floor raised from 9.2 → 9.5 to lock in gains.
2026-03-18 09:24:37 +01:00
lucaronin
ebdc39b308 fix: latest.json must point to .tar.gz not .dmg for Tauri in-app updater
The Tauri updater plugin requires the .app.tar.gz artifact as the update
URL — not the .dmg installer. The DMG is for fresh installs only.
This was causing 'Install Update' to silently fail on all macOS builds
since the auto-updater infrastructure was set up.

Change ARM_DMG → ARM_TARBALL, pointing to the .app.tar.gz artifact.
2026-03-06 10:54:04 +01:00
lucaronin
aaecd9a626 ci: import Apple certificate before Tauri build so beforeBuildCommand can codesign
bundle-qmd.sh signs qmd/qmd and vec0.dylib with Developer ID + hardened
runtime, but the certificate wasn't in the keychain yet when it ran
(Tauri imports the cert internally, AFTER beforeBuildCommand completes).

Fix: add explicit 'Import Apple Developer certificate' step before the
Tauri build step, using security create-keychain + security import.
This makes the cert available to codesign during beforeBuildCommand.
2026-03-06 09:10:46 +01:00
lucaronin
7c9067527b ci: add bun setup step to release workflow (required by bundle-qmd.sh)
bundle-qmd.sh uses bun to compile the qmd binary. Release runners
don't have bun pre-installed on self-hosted macOS runners.
Add oven-sh/setup-bun@v2 before the Rust setup step.
2026-03-06 07:23:37 +01:00
Luca Rossi
1d4036e9ad fix: bundle mcp-server into release app so AI Chat works (#178)
* feat: bundle mcp-server into release app so AI Chat works

- Add esbuild bundle script (scripts/bundle-mcp-server.mjs) that compiles
  mcp-server/index.js and ws-bridge.js into self-contained CJS bundles
- Output goes to src-tauri/resources/mcp-server/ (gitignored)
- Add Tauri resources config to copy bundles into Contents/Resources/mcp-server/
- Update mcp_server_dir() to look in Contents/Resources/ (not Contents/) in release
- Add bundle-mcp npm script; hook it into tauri beforeBuildCommand
- Exclude generated resources from ESLint

Previously AI Chat showed 'mcp-server not found at .../Contents/mcp-server'
because the release path lacked the 'Resources' segment and no files were bundled.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* ci: bundle mcp-server resources before Rust tests

* fix: add mcp-server as pnpm workspace package so esbuild can resolve its deps in CI

* fix: exclude src-tauri/target from eslint to fix CI lint failure

---------

Co-authored-by: Test <test@test.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-02 23:31:04 +01:00
lucaronin
5937a4457e ci: exclude Tauri boilerplate from Rust coverage check
lib.rs / main.rs / menu.rs are generated Tauri command dispatch and
native macOS menu setup — not meaningfully unit-testable. Their low
coverage (~10%) was dragging the total below the 85% threshold despite
all business logic being well-covered.

Without these files, coverage is 93%+.
2026-03-02 00:37:42 +01:00
lucaronin
3e87cd7148 fix: serve latest.json via GitHub Pages for auto-updater endpoint 2026-02-28 19:39:34 +01:00
Luca Rossi
074c22286c style: cargo fmt (#135)
* ci: re-enable macOS code signing and notarization

Uncomment the Apple credential env vars in the release workflow
so Tauri's build step signs and notarizes the .app bundle.
This reverses the temporary disable from b03d6df.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* style: cargo fmt

---------

Co-authored-by: Test <test@test.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:33:09 +01:00
lucaronin
b03d6df8a9 ci: temporarily disable notarization (awaiting new certificate) 2026-02-28 13:01:02 +01:00
lucaronin
89fbe15c9d ci: fix notarization — use Tauri v2 env vars (APPLE_CERTIFICATE + APPLE_SIGNING_IDENTITY) 2026-02-28 11:49:51 +01:00