From 6809cf09c6e61bc512a63494c895d6179f451955 Mon Sep 17 00:00:00 2001 From: TZGyn Date: Sun, 2 Aug 2026 12:47:56 +0800 Subject: [PATCH] gitignore compiled biometric helper + agent permission rules --- AGENTS.md | 1 + apps/desktop/.gitignore | 3 +++ apps/desktop/src/bun/native/biometric-helper | Bin 72832 -> 0 bytes 3 files changed, 4 insertions(+) delete mode 100755 apps/desktop/src/bun/native/biometric-helper diff --git a/AGENTS.md b/AGENTS.md index e63c201..8698d0f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,7 @@ # Instructions for AI assistants - Never commit changes unless explicitly told to do so. Always ask first or wait for the user's command. +- "Apply the changes" / "apply it" / "do it" does NOT mean commit. It means make the file changes. Before any commit (main repo, tap repo, anywhere), stop and ask for explicit permission, and list which files will be committed. Wait for a clear "yes" / "commit it" before running `git commit`. - Never manually edit `.router/router.ts` — sv-router auto-generates it from the filesystem. Just create the route file in the correct filesystem location. - Only commit when explicitly told to do so. When asked to commit, always write a single simple line commit message. - When asked to publish, always rebuild the DMG first (`bun run build:stable` from `apps/desktop`), wait for notarization to complete, verify with `xcrun stapler validate`, then publish the fresh DMG. Never publish a stale build. diff --git a/apps/desktop/.gitignore b/apps/desktop/.gitignore index 199288e..9174f22 100644 --- a/apps/desktop/.gitignore +++ b/apps/desktop/.gitignore @@ -27,3 +27,6 @@ dist-ssr artifacts .env .env.local + +# compiled native helper (build artifact; source is biometric-helper.swift) +src/bun/native/biometric-helper diff --git a/apps/desktop/src/bun/native/biometric-helper b/apps/desktop/src/bun/native/biometric-helper deleted file mode 100755 index 188023120bb0ce2494c10523ca13196df649dae6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72832 zcmeHw2V7Ih_Wwfp>K>!OX!VMi14OLMDBw)c3LUM%&B$xyQYrtLCwkp=Oqv$HE zy1Mp`WnJ4^P*K-j*SdBE*YZ1a?@b6%*Y|$!{oecU|1lT#~l^Bn5>jt`U-K>u|B*%$|NE0mY<1l{!|3>9j+Ln^_OT1aws)5#8h4yD-U3!gP#ACER@I2H=ELCAc-HX zM-D5m5i0=k#^W=_l99)bk5X#Y1s|{P1Xi9UD-ZFeGT0(IG8&&!n*H(krnB<;vyBjM z986_PB)Q7r3Z-14P!3T+MN|A9vhs3RA&57XVJsh=iy+ur5=mrOQkWznK2FS>4iU4i z1jKYOiQy;_dV(zp?bB7YyX5ooJlK7V^dm2rRfxc&UC&LSb2tZ1^yq$&8Rn>32wmCLBvFQ%=BZ`pI0gi4g;tGW?W2N z`mc_WC(vgBuWyU8;Orv!4M8H2OSMu1`;k0>j*+LIC*qCe)wX0(XdSY%RZ4xn>G(XL zJqHR&eFcb(<)Jd;fc6`s&tqfadPYUYFuM&DC5xMmtqnX1x`9lL(;h!k9gFFEc z(!buh8nt(pBF$S~kR=Bmh2}tL9P7`&XwcwMr_oEA+a25RZOf}ZkS73Q=F|)pvKgIb zuzSvL4`s#+>jCpaa?ta{IG}!mfKVB;Ut<9cPVHD=JmLb4mdf@D_kwXL(wNq$T`G{i z9p7wOLqLGz%~bY|Rivq<>H_a*HE6BjDs`sDJ6e^igw3T;DZPg1bG`deY7OLQyd#Xt zK`xS?V9*u{nl-7u?4o`XZw#&8%oKviaaWU6=K>y zH(&Qx{r5}IH-uU!p!RieWU_1baa|lG;kk+|twJdolBJRwPoxdBL+7SDoO=|vV|k

}$oKtXSr&~4>)mU;w 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