Skip to content

Commit 0418421

Browse files
authored
feat: publish Mimir open core updates (#27)
* feat(product): add Mimir app and core hardening * feat(core): use proven Office parsers * test(core): cover varied parsing fixtures * docs: split long README references * docs(app): document Mimir Core sidecar boundary * feat(app): expand local workspace shell * feat(landing): add waitlist capture endpoint * fix(frontend): add Mimir favicons * docs(product): define pricing and payment defaults * feat(core): add JSON output for sidecar commands * feat(app): add local project registry * feat(core): support explicit project roots * feat(product): align Mimir landing and CLI * feat(app): wire bounded Mimir runtime bridge * feat(app): surface Mimir model status * docs(readme): mention desktop client preview * feat(app): export retrieval markdown reports * feat(app): render offline audio reports * feat(app): add local license activation * docs(app): define direct distribution runbook * docs(app): add signing release checklist * feat(app): add watched folder auto ingest * feat(core): add opt-in PDF OCR command * feat(app): map Lemon Squeezy events to licenses * build(app): add Android APK build script * feat(app): add Google Drive sync intake * build(app): add native release preflight * docs(gtm): add validation playbook * docs(product): define app brand and domain * build(landing): add Cloudflare static assets config * test(core): add MCP smoke client * docs(core): record dogfooding audio proof * fix(core): keep private documents ignored * docs(product): define open-core boundary * ci(app): add native desktop artifact workflow * feat(core): add legal dossier skill * docs(product): bound sovereign positioning * feat(core): add semantic setup shortcut * fix(app): enable semantic model setup * docs(core): add api reference * docs(tts): add offline preload guide * docs(landing): clarify direct app distribution * docs(dogfooding): add private corpus protocol * ci(app): add native bundle checksums * docs(payments): define direct checkout path * ci(app): guard updater configuration * test(app): cover lemon squeezy license conversion * feat(core): add retrieval recall evaluation * test(core): smoke retrieval evaluation * ci: run quality gate on git flow branches * test(app): smoke updater guard * feat(webhook): add license issuance handler * feat(webhook): persist license records * ci(webhook): add worker dry run * fix(core): hide legacy kb alias from help * test(core): guard public cli help * test(app): smoke native checksums * feat(core): expose mimir command helper * feat(app): add native release manifest * test(repo): guard public surface * test(app): smoke release preflight * test(app): verify native bundles * chore(repo): harden public source boundary * build(deps): patch vulnerable parser dependencies * feat(core): add evaluation recall threshold * feat(landing): refine design and seo * feat(core): expose evaluation embedding metadata * feat(landing): add shadcn workflow tabs * fix(landing): use tabs for install commands * feat(landing): redesign Mimir product story * feat(landing): add concrete product use cases * feat(core): improve ingestion and usage diagnostics * feat(core): default project state to .mimir Move new project scaffolding, docs, examples, app copy, and smoke coverage to the .mimir-first layout while preserving legacy .kb compatibility. Add opt-in image OCR and legacy Word extraction configuration, keep public open-source positioning explicit, and refresh generated dist artifacts for the npm package. * fix(core): support file entries in sources list * docs: emphasize agent-first Mimir setup * docs: add main agent setup examples * docs: highlight developer use cases
1 parent e5e42bd commit 0418421

341 files changed

Lines changed: 21526 additions & 2808 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/ISSUE_TEMPLATE/bug_report.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ body:
2222
id: version
2323
attributes:
2424
label: Mimir version
25-
placeholder: "pnpm exec kb --version"
25+
placeholder: "pnpm exec mimir --version"
2626
validations:
2727
required: true
2828
- type: textarea

‎.github/PULL_REQUEST_TEMPLATE.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@
88

99
## Security
1010

11-
- [ ] No secrets, private documents, `.env` files, or generated `.kb/storage` files are included.
12-
- [ ] Public documentation does not expose private project details.
11+
- [ ] No secrets, private documents, `.env` files, generated `.kb/` or generated `.mimir/` state are included.
12+
- [ ] Public documentation does not expose private project, customer, pricing, or validation details.

‎.github/workflows/ci.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: CI
22

33
on:
44
pull_request:
5-
branches: [main]
5+
branches: [main, develop]
66
push:
7-
branches: [main]
7+
branches: [main, develop, "feature/**"]
88
merge_group:
99

1010
permissions:
@@ -51,7 +51,7 @@ jobs:
5151
run: pnpm smoke
5252

5353
- name: Verify generated dist is committed
54-
run: git diff --exit-code -- packages/mimir/dist packages/mimir-tts/dist
54+
run: git diff --exit-code -- packages/mimir-core/dist packages/mimir-tts/dist
5555

5656
- name: Verify npm package metadata
5757
run: pnpm package:check
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
name: Native App Build
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
target:
7+
description: "Native target to build"
8+
required: true
9+
default: "linux"
10+
type: choice
11+
options:
12+
- linux
13+
- macos
14+
- windows
15+
- desktop-all
16+
17+
permissions:
18+
contents: read
19+
20+
concurrency:
21+
group: native-app-build-${{ github.ref }}-${{ inputs.target }}
22+
cancel-in-progress: false
23+
24+
jobs:
25+
linux:
26+
name: Build Linux AppImage and deb
27+
if: inputs.target == 'linux' || inputs.target == 'desktop-all'
28+
runs-on: ubuntu-22.04
29+
steps:
30+
- name: Checkout
31+
uses: actions/checkout@v6
32+
33+
- name: Install Linux Tauri dependencies
34+
run: |
35+
sudo apt-get update
36+
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
37+
38+
- name: Set up Node
39+
uses: actions/setup-node@v4
40+
with:
41+
node-version: 22
42+
43+
- name: Set up pnpm
44+
run: |
45+
corepack enable
46+
corepack prepare pnpm@11.9.0 --activate
47+
48+
- name: Set up Rust
49+
uses: dtolnay/rust-toolchain@stable
50+
51+
- name: Install dependencies
52+
run: pnpm install --frozen-lockfile
53+
54+
- name: Run release preflight
55+
run: pnpm --filter @jcode.labs/mimir-app release:preflight -- --target linux --soft
56+
57+
- name: Build native bundle
58+
run: pnpm --filter @jcode.labs/mimir-app tauri:build:linux
59+
60+
- name: Generate checksums
61+
run: pnpm --filter @jcode.labs/mimir-app release:checksums
62+
63+
- name: Generate release manifest
64+
run: pnpm --filter @jcode.labs/mimir-app release:manifest -- --target linux
65+
66+
- name: Upload native bundle
67+
uses: actions/upload-artifact@v4
68+
with:
69+
name: mimir-app-linux-${{ github.sha }}
70+
path: packages/mimir-app/src-tauri/target/release/bundle/
71+
if-no-files-found: error
72+
73+
macos:
74+
name: Build macOS app and dmg
75+
if: inputs.target == 'macos' || inputs.target == 'desktop-all'
76+
runs-on: macos-latest
77+
steps:
78+
- name: Checkout
79+
uses: actions/checkout@v6
80+
81+
- name: Set up Node
82+
uses: actions/setup-node@v4
83+
with:
84+
node-version: 22
85+
86+
- name: Set up pnpm
87+
run: |
88+
corepack enable
89+
corepack prepare pnpm@11.9.0 --activate
90+
91+
- name: Set up Rust
92+
uses: dtolnay/rust-toolchain@stable
93+
94+
- name: Install dependencies
95+
run: pnpm install --frozen-lockfile
96+
97+
- name: Run release preflight
98+
run: pnpm --filter @jcode.labs/mimir-app release:preflight -- --target macos --soft
99+
100+
- name: Build native bundle
101+
run: pnpm --filter @jcode.labs/mimir-app tauri:build:macos
102+
103+
- name: Generate checksums
104+
run: pnpm --filter @jcode.labs/mimir-app release:checksums
105+
106+
- name: Generate release manifest
107+
run: pnpm --filter @jcode.labs/mimir-app release:manifest -- --target macos
108+
109+
- name: Upload native bundle
110+
uses: actions/upload-artifact@v4
111+
with:
112+
name: mimir-app-macos-${{ github.sha }}
113+
path: packages/mimir-app/src-tauri/target/release/bundle/
114+
if-no-files-found: error
115+
116+
windows:
117+
name: Build Windows NSIS and MSI
118+
if: inputs.target == 'windows' || inputs.target == 'desktop-all'
119+
runs-on: windows-latest
120+
steps:
121+
- name: Checkout
122+
uses: actions/checkout@v6
123+
124+
- name: Set up Node
125+
uses: actions/setup-node@v4
126+
with:
127+
node-version: 22
128+
129+
- name: Set up pnpm
130+
shell: bash
131+
run: |
132+
corepack enable
133+
corepack prepare pnpm@11.9.0 --activate
134+
135+
- name: Set up Rust
136+
uses: dtolnay/rust-toolchain@stable
137+
138+
- name: Install dependencies
139+
run: pnpm install --frozen-lockfile
140+
141+
- name: Run release preflight
142+
run: pnpm --filter @jcode.labs/mimir-app release:preflight -- --target windows --soft
143+
144+
- name: Build native bundle
145+
run: pnpm --filter @jcode.labs/mimir-app tauri:build:windows
146+
147+
- name: Generate checksums
148+
run: pnpm --filter @jcode.labs/mimir-app release:checksums
149+
150+
- name: Generate release manifest
151+
run: pnpm --filter @jcode.labs/mimir-app release:manifest -- --target windows
152+
153+
- name: Upload native bundle
154+
uses: actions/upload-artifact@v4
155+
with:
156+
name: mimir-app-windows-${{ github.sha }}
157+
path: packages/mimir-app/src-tauri/target/release/bundle/
158+
if-no-files-found: error

‎.github/workflows/npm-publish.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
4848
- name: Verify version input
4949
run: |
50-
test "$(node -p "require('./packages/mimir/package.json').version")" = "${{ inputs.version }}"
50+
test "$(node -p "require('./packages/mimir-core/package.json').version")" = "${{ inputs.version }}"
5151
test "$(node -p "require('./packages/mimir-tts/package.json').version")" = "${{ inputs.version }}"
5252
5353
- name: Install dependencies
@@ -69,7 +69,7 @@ jobs:
6969
run: pnpm smoke
7070

7171
- name: Verify generated dist is committed
72-
run: git diff --exit-code -- packages/mimir/dist packages/mimir-tts/dist
72+
run: git diff --exit-code -- packages/mimir-core/dist packages/mimir-tts/dist
7373

7474
- name: Verify npm package metadata
7575
run: pnpm package:check
@@ -89,6 +89,6 @@ jobs:
8989
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
9090

9191
- name: Publish Mimir
92-
run: pnpm --dir packages/mimir publish --access public --provenance --no-git-checks
92+
run: pnpm --dir packages/mimir-core publish --access public --provenance --no-git-checks
9393
env:
9494
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

‎.gitignore‎

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,29 @@ coverage/
66
private/**
77
.kb/
88
.mimir/
9+
.claude/
10+
.codex/
11+
.agents/
912
*.tgz
1013
release-artifacts/
14+
*.pid
15+
16+
packages/mimir-app/dist/
17+
packages/mimir-app/src-tauri/target/
18+
packages/mimir-app/src-tauri/gen/
19+
packages/mimir-landing/.astro/
20+
packages/mimir-landing/dist/
21+
packages/mimir-license-webhook/dist/
1122

1223
# Tracked synthetic examples. Keep generated example runtime state ignored.
13-
!packages/mimir/examples/
14-
!packages/mimir/examples/**/
15-
!packages/mimir/examples/**/.kb/
16-
!packages/mimir/examples/**/.kb/config.json
17-
!packages/mimir/examples/**/.kb/sources.txt
18-
packages/mimir/examples/**/.kb/storage/
19-
packages/mimir/examples/**/.kb/access.log
20-
packages/mimir/examples/**/.mimir/
24+
!packages/mimir-core/examples/
25+
!packages/mimir-core/examples/**/
26+
!packages/mimir-core/examples/**/.mimir/
27+
!packages/mimir-core/examples/**/.mimir/config.json
28+
!packages/mimir-core/examples/**/.mimir/sources.txt
29+
packages/mimir-core/examples/**/.mimir/storage/
30+
packages/mimir-core/examples/**/.mimir/access.log
31+
packages/mimir-core/examples/**/.mimir/models/
32+
packages/mimir-core/examples/**/.mimir/reports/
33+
packages/mimir-core/examples/**/.mimir/audio/
34+
.gitnexus

0 commit comments

Comments
 (0)