GitHub - bart6114/loofah: Free, open-source meeting recorder and Markdown knowledge vault for macOS. Private on-device transcription, BYO AI, plus CLI and read-
Navigation Menu
[](https://github.com/)
Appearance settings
* Platform
* AI CODE CREATION
- GitHub Copilot Write better code with AI
- GitHub Copilot app Direct agents from issue to merge
- MCP Registry Integrate external tools
* DEVELOPER WORKFLOWS
- Actions Automate any workflow
- Codespaces Instant dev environments
- Code Review Manage code changes
- Code Quality Enforce quality at merge
* APPLICATION SECURITY
- GitHub Advanced Security Find and fix vulnerabilities
- Code security Secure your code as you build
- Secret protection Stop leaks before they start
* EXPLORE
- Blog
* Solutions
* BY COMPANY SIZE
- Startups
* BY USE CASE
- DevOps
- CI/CD
* BY INDUSTRY
* Resources
* EXPLORE BY TOPIC
- AI
- DevOps
- Security
* EXPLORE BY TYPE
* SUPPORT & SERVICES
- Partners
* Open Source
* COMMUNITY
- GitHub Sponsors Fund open source developers
* PROGRAMS
* REPOSITORIES
- Topics
- Trending
* Enterprise
* ENTERPRISE SOLUTIONS
- Enterprise platform AI-powered developer platform
* AVAILABLE ADD-ONS
- GitHub Advanced Security Enterprise-grade security features
- Copilot for Business Enterprise-grade AI features
- Premium Support Enterprise-grade 24/7 support
- Pricing
Search/
Appearance settings
You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
- NotificationsYou must be signed in to change notification settings
- Fork 0
- Star 3
- Code
- Issues 8
- Actions
- Projects
- Insights
Additional navigation options
- Code
- Issues
- Actions
- Projects
- Insights
[](https://github.com/bart6114/loofah)
main
[](https://github.com/bart6114/loofah/branches)[](https://github.com/bart6114/loofah/tags)
Go to file
Code
Open more actions menu
Latest commit
bart6114
[docs: fill landing viewport [skip ci]](https://github.com/bart6114/loofah/commit/f2d3a6785d3fd169e9438f5f4fc107fbad45c113)
Aug 29, 2026
f2d3a67·Aug 29, 2026
History
Open commit details
[](https://github.com/bart6114/loofah/commits/main/)8,634 Commits
Folders and files
| Name | Name | Last commit message | Last commit date | | --- | --- | --- | --- |
| [.agents](https://github.com/bart6114/loofah/tree/main/.agents ".agents") | [.agents](https://github.com/bart6114/loofah/tree/main/.agents ".agents") | [refactor!: rename CLI command to loof](https://github.com/bart6114/loofah/commit/8ff50d42b006db87c10fcc988f1a1a12726c2ffc "refactor!: rename CLI command to loof") | Aug 27, 2026 |
| [.cargo](https://github.com/bart6114/loofah/tree/main/.cargo ".cargo") | [.cargo](https://github.com/bart6114/loofah/tree/main/.cargo ".cargo") | [embed chrome native host binary](https://github.com/bart6114/loofah/commit/cb6b0eabe91c90da2721e5058c0e0e3d6b24f002 "embed chrome native host binary Signed-off-by: Yujong Lee <yujonglee.dev@gmail.com>") | Feb 26, 2026 |
| [.claude/skills](https://github.com/bart6114/loofah/tree/main/.claude/skills "This path skips through empty directories") | [.claude/skills](https://github.com/bart6114/loofah/tree/main/.claude/skills "This path skips through empty directories") | [feat: realign CLI rename as v0.31](https://github.com/bart6114/loofah/commit/4fd3d4de3b64041f7bf9a8b9bba3cb0ef672d45f "feat: realign CLI rename as v0.31") | Aug 27, 2026 |
| [.github](https://github.com/bart6114/loofah/tree/main/.github ".github") | [.github](https://github.com/bart6114/loofah/tree/main/.github ".github") | [ci: retain target cache for release builds](https://github.com/bart6114/loofah/commit/66710281fb1bf101f57d417d59bd4891bdbc2888 "ci: retain target cache for release builds") | Aug 28, 2026 |
| [apps](https://github.com/bart6114/loofah/tree/main/apps "apps") | [apps](https://github.com/bart6114/loofah/tree/main/apps "apps") | [chore(release): v0.32.5 [skip ci]](https://github.com/bart6114/loofah/commit/66897133f892d13b4c1fecb1c1b53b2567c0123e "chore(release): v0.32.5 [skip ci]") | Aug 29, 2026 |
| [crates](https://github.com/bart6114/loofah/tree/main/crates "crates") | [crates](https://github.com/bart6114/loofah/tree/main/crates "crates") | [Merge pull request](https://github.com/bart6114/loofah/commit/c34fd128c62f988c836f6f84ba6b28971d725650 "Merge pull request #51 from bart6114/chore/add-mcp-client-guide # Conflicts: # apps/desktop/src/i18n/locales/af/messages.ts # apps/desktop/src/i18n/locales/am/messages.ts # apps/desktop/src/i18n/locales/ar/messages.ts # apps/desktop/src/i18n/locales/as/messages.ts # apps/desktop/src/i18n/locales/az/messages.ts # apps/desktop/src/i18n/locales/ba/messages.ts # apps/desktop/src/i18n/locales/be/messages.ts # apps/desktop/src/i18n/locales/bg/messages.ts # apps/desktop/src/i18n/locales/bn/messages.ts # apps/desktop/src/i18n/locales/bo/messages.ts # apps/desktop/src/i18n/locales/br/messages.ts # apps/desktop/src/i18n/locales/bs/messages.ts # apps/desktop/src/i18n/locales/ca/messages.ts # apps/desktop/src/i18n/locales/cs/messages.ts # apps/desktop/src/i18n/locales/cy/messages.ts # apps/desktop/src/i18n/locales/da/messages.ts # apps/desktop/src/i18n/locales/de/messages.ts # apps/desktop/src/i18n/locales/el/messages.ts # apps/desktop/src/i18n/locales/en/messages.ts # apps/desktop/src/i18n/locales/es/messages.ts # apps/desktop/src/i18n/locales/et/messages.ts # apps/desktop/src/i18n/locales/eu/messages.ts # apps/desktop/src/i18n/locales/fa/messages.ts # apps/desktop/src/i18n/locales/ff/messages.ts # apps/desktop/src/i18n/locales/fi/messages.ts # apps/desktop/src/i18n/locales/fo/messages.ts # apps/desktop/src/i18n/locales/fr/messages.ts # apps/desktop/src/i18n/locales/ga/messages.ts # apps/desktop/src/i18n/locales/gl/messages.ts # apps/desktop/src/i18n/locales/gu/messages.ts # apps/desktop/src/i18n/locales/ha/messages.ts # apps/desktop/src/i18n/locales/he/messages.ts # apps/desktop/src/i18n/locales/hi/messages.ts # apps/desktop/src/i18n/locales/hr/messages.ts # apps/desktop/src/i18n/locales/ht/messages.ts # apps/desktop/src/i18n/locales/hu/messages.ts # apps/desktop/src/i18n/locales/hy/messages.ts # apps/desktop/src/i18n/locales/id/messages.ts # apps/desktop/src/i18n/locales/ig/messages.ts # apps/desktop/src/i18n/locales/is/messages.ts # apps/desktop/src/i18n/locales/it/messages.ts # apps/desktop/src/i18n/locales/ja/messages.ts # apps/desktop/src/i18n/locales/jv/messages.ts # apps/desktop/src/i18n/locales/ka/messages.ts # apps/desktop/src/i18n/locales/kk/messages.ts # apps/desktop/src/i18n/locales/km/messages.ts # apps/desktop/src/i18n/locales/kn/messages.ts # apps/desktop/src/i18n/locales/ko/messages.ts # apps/desktop/src/i18n/locales/ku/messages.ts # apps/desktop/src/i18n/locales/ky/messages.ts # apps/desktop/src/i18n/locales/la/messages.ts # apps/desktop/src/i18n/locales/lb/messages.ts # apps/desktop/src/i18n/locales/lg/messages.ts # apps/desktop/src/i18n/locales/ln/messages.ts # apps/desktop/src/i18n/locales/lo/messages.ts # apps/desktop/src/i18n/locales/lt/messages.ts # apps/desktop/src/i18n/locales/lv/messages.ts # apps/desktop/src/i18n/locales/mg/messages.ts # apps/desktop/src/i18n/locales/mi/messages.ts # apps/desktop/src/i18n/locales/mk/messages.ts # apps/desktop/src/i18n/locales/ml/messages.ts # apps/desktop/src/i18n/locales/mn/messages.ts # apps/desktop/src/i18n/locales/mr/messages.ts # apps/desktop/src/i18n/locales/ms/messages.ts # apps/desktop/src/i18n/locales/mt/messages.ts # apps/desktop/src/i18n/locales/my/messages.ts # apps/desktop/src/i18n/locales/ne/messages.ts # apps/desktop/src/i18n/locales/nl/messages.ts # apps/desktop/src/i18n/locales/nn/messages.ts # apps/desktop/src/i18n/locales/no/messages.ts # apps/desktop/src/i18n/locales/ny/messages.ts # apps/desktop/src/i18n/locales/oc/messages.ts # apps/desktop/src/i18n/locales/or/messages.ts # apps/desktop/src/i18n/locales/pa/messages.ts # apps/desktop/src/i18n/locales/pl/messages.ts # apps/desktop/src/i18n/locales/ps/messages.ts # apps/desktop/src/i18n/locales/pt/messages.ts # apps/desktop/src/i18n/locales/ro/messages.ts # apps/desktop/src/i18n/locales/ru/messages.ts # apps/desktop/src/i18n/locales/sa/messages.ts # apps/desktop/src/i18n/locales/sd/messages.ts # apps/desktop/src/i18n/locales/si/messages.ts # apps/desktop/src/i18n/locales/sk/messages.ts # apps/desktop/src/i18n/locales/sl/messages.ts # apps/desktop/src/i18n/locales/sn/messages.ts # apps/desktop/src/i18n/locales/so/messages.ts # apps/desktop/src/i18n/locales/sq/messages.ts # apps/desktop/src/i18n/locales/sr/messages.ts # apps/desktop/src/i18n/locales/su/messages.ts # apps/desktop/src/i18n/locales/sv/messages.ts # apps/desktop/src/i18n/locales/sw/messages.ts # apps/desktop/src/i18n/locales/ta/messages.ts # apps/desktop/src/i18n/locales/te/messages.ts # apps/desktop/src/i18n/locales/tg/messages.ts # apps/desktop/src/i18n/locales/th/messages.ts # apps/desktop/src/i18n/locales/tk/messages.ts # apps/desktop/src/i18n/locales/tl/messages.ts # apps/desktop/src/i18n/locales/tr/messages.ts # apps/desktop/src/i18n/locales/tt/messages.ts # apps/desktop/src/i18n/locales/uk/messages.ts # apps/desktop/src/i18n/locales/ur/messages.ts # apps/desktop/src/i18n/locales/uz/messages.ts # apps/desktop/src/i18n/locales/vi/messages.ts # apps/desktop/src/i18n/locales/wo/messages.ts # apps/desktop/src/i18n/locales/xh/messages.ts # apps/desktop/src/i18n/locales/yi/messages.ts # apps/desktop/src/i18n/locales/yo/messages.ts # apps/desktop/src/i18n/locales/zh/messages.ts # apps/desktop/src/i18n/locales/zu/messages.ts # apps/desktop/src/settings/general/index.tsx # plugins/settings/js/bindings.gen.ts")#51[from bart6114/chore/add-mcp-client-guide](https://github.com/bart6114/loofah/commit/c34fd128c62f988c836f6f84ba6b28971d725650 "Merge pull request #51 from bart6114/chore/add-mcp-client-guide # Conflicts: # apps/desktop/src/i18n/locales/af/messages.ts # apps/desktop/src/i18n/locales/am/messages.ts # apps/desktop/src/i18n/locales/ar/messages.ts # apps/desktop/src/i18n/locales/as/messages.ts # apps/desktop/src/i18n/locales/az/messages.ts # apps/desktop/src/i18n/locales/ba/messages.ts # apps/desktop/src/i18n/locales/be/messages.ts # apps/desktop/src/i18n/locales/bg/messages.ts # apps/desktop/src/i18n/locales/bn/messages.ts # apps/desktop/src/i18n/locales/bo/messages.ts # apps/desktop/src/i18n/locales/br/messages.ts # apps/desktop/src/i18n/locales/bs/messages.ts # apps/desktop/src/i18n/locales/ca/messages.ts # apps/desktop/src/i18n/locales/cs/messages.ts # apps/desktop/src/i18n/locales/cy/messages.ts # apps/desktop/src/i18n/locales/da/messages.ts # apps/desktop/src/i18n/locales/de/messages.ts # apps/desktop/src/i18n/locales/el/messages.ts # apps/desktop/src/i18n/locales/en/messages.ts # apps/desktop/src/i18n/locales/es/messages.ts # apps/desktop/src/i18n/locales/et/messages.ts # apps/desktop/src/i18n/locales/eu/messages.ts # apps/desktop/src/i18n/locales/fa/messages.ts # apps/desktop/src/i18n/locales/ff/messages.ts # apps/desktop/src/i18n/locales/fi/messages.ts # apps/desktop/src/i18n/locales/fo/messages.ts # apps/desktop/src/i18n/locales/fr/messages.ts # apps/desktop/src/i18n/locales/ga/messages.ts # apps/desktop/src/i18n/locales/gl/messages.ts # apps/desktop/src/i18n/locales/gu/messages.ts # apps/desktop/src/i18n/locales/ha/messages.ts # apps/desktop/src/i18n/locales/he/messages.ts # apps/desktop/src/i18n/locales/hi/messages.ts # apps/desktop/src/i18n/locales/hr/messages.ts # apps/desktop/src/i18n/locales/ht/messages.ts # apps/desktop/src/i18n/locales/hu/messages.ts # apps/desktop/src/i18n/locales/hy/messages.ts # apps/desktop/src/i18n/locales/id/messages.ts # apps/desktop/src/i18n/locales/ig/messages.ts # apps/desktop/src/i18n/locales/is/messages.ts # apps/desktop/src/i18n/locales/it/messages.ts # apps/desktop/src/i18n/locales/ja/messages.ts # apps/desktop/src/i18n/locales/jv/messages.ts # apps/desktop/src/i18n/locales/ka/messages.ts # apps/desktop/src/i18n/locales/kk/messages.ts # apps/desktop/src/i18n/locales/km/messages.ts # apps/desktop/src/i18n/locales/kn/messages.ts # apps/desktop/src/i18n/locales/ko/messages.ts # apps/desktop/src/i18n/locales/ku/messages.ts # apps/desktop/src/i18n/locales/ky/messages.ts # apps/desktop/src/i18n/locales/la/messages.ts # apps/desktop/src/i18n/locales/lb/messages.ts # apps/desktop/src/i18n/locales/lg/messages.ts # apps/desktop/src/i18n/locales/ln/messages.ts # apps/desktop/src/i18n/locales/lo/messages.ts # apps/desktop/src/i18n/locales/lt/messages.ts # apps/desktop/src/i18n/locales/lv/messages.ts # apps/desktop/src/i18n/locales/mg/messages.ts # apps/desktop/src/i18n/locales/mi/messages.ts # apps/desktop/src/i18n/locales/mk/messages.ts # apps/desktop/src/i18n/locales/ml/messages.ts # apps/desktop/src/i18n/locales/mn/messages.ts # apps/desktop/src/i18n/locales/mr/messages.ts # apps/desktop/src/i18n/locales/ms/messages.ts # apps/desktop/src/i18n/locales/mt/messages.ts # apps/desktop/src/i18n/locales/my/messages.ts # apps/desktop/src/i18n/locales/ne/messages.ts # apps/desktop/src/i18n/locales/nl/messages.ts # apps/desktop/src/i18n/locales/nn/messages.ts # apps/desktop/src/i18n/locales/no/messages.ts # apps/desktop/src/i18n/locales/ny/messages.ts # apps/desktop/src/i18n/locales/oc/messages.ts # apps/desktop/src/i18n/locales/or/messages.ts # apps/desktop/src/i18n/locales/pa/messages.ts # apps/desktop/src/i18n/locales/pl/messages.ts # apps/desktop/src/i18n/locales/ps/messages.ts # apps/desktop/src/i18n/locales/pt/messages.ts # apps/desktop/src/i18n/locales/ro/messages.ts # apps/desktop/src/i18n/locales/ru/messages.ts # apps/desktop/src/i18n/locales/sa/messages.ts # apps/desktop/src/i18n/locales/sd/messages.ts # apps/desktop/src/i18n/locales/si/messages.ts # apps/desktop/src/i18n/locales/sk/messages.ts # apps/desktop/src/i18n/locales/sl/messages.ts # apps/desktop/src/i18n/locales/sn/messages.ts # apps/desktop/src/i18n/locales/so/messages.ts # apps/desktop/src/i18n/locales/sq/messages.ts # apps/desktop/src/i18n/locales/sr/messages.ts # apps/desktop/src/i18n/locales/su/messages.ts # apps/desktop/src/i18n/locales/sv/messages.ts # apps/desktop/src/i18n/locales/sw/messages.ts # apps/desktop/src/i18n/locales/ta/messages.ts # apps/desktop/src/i18n/locales/te/messages.ts # apps/desktop/src/i18n/locales/tg/messages.ts # apps/desktop/src/i18n/locales/th/messages.ts # apps/desktop/src/i18n/locales/tk/messages.ts # apps/desktop/src/i18n/locales/tl/messages.ts # apps/desktop/src/i18n/locales/tr/messages.ts # apps/desktop/src/i18n/locales/tt/messages.ts # apps/desktop/src/i18n/locales/uk/messages.ts # apps/desktop/src/i18n/locales/ur/messages.ts # apps/desktop/src/i18n/locales/uz/messages.ts # apps/desktop/src/i18n/locales/vi/messages.ts # apps/desktop/src/i18n/locales/wo/messages.ts # apps/desktop/src/i18n/locales/xh/messages.ts # apps/desktop/src/i18n/locales/yi/messages.ts # apps/desktop/src/i18n/locales/yo/messages.ts # apps/desktop/src/i18n/locales/zh/messages.ts # apps/desktop/src/i18n/locales/zu/messages.ts # apps/desktop/src/settings/general/index.tsx # plugins/settings/js/bindings.gen.ts") | Aug 27, 2026 |
| [docs](https://github.com/bart6114/loofah/tree/main/docs "docs") | [docs](https://github.com/bart6114/loofah/tree/main/docs "docs") | [docs: fill landing viewport [skip ci]](https://github.com/bart6114/loofah/commit/f2d3a6785d3fd169e9438f5f4fc107fbad45c113 "docs: fill landing viewport [skip ci]") | Aug 29, 2026 |
| [e2e](https://github.com/bart6114/loofah/tree/main/e2e "e2e") | [e2e](https://github.com/bart6114/loofah/tree/main/e2e "e2e") | [chore: rename product to Loofah](https://github.com/bart6114/loofah/commit/4125f15f90c6a201dfcf5ccb80bf720d1c6cc5c6 "chore: rename product to Loofah") | Aug 26, 2026 |
| [examples/plugins](https://github.com/bart6114/loofah/tree/main/examples/plugins "This path skips through empty directories") | [examples/plugins](https://github.com/bart6114/loofah/tree/main/examples/plugins "This path skips through empty directories") | [chore: rename product to Loofah](https://github.com/bart6114/loofah/commit/4125f15f90c6a201dfcf5ccb80bf720d1c6cc5c6 "chore: rename product to Loofah") | Aug 26, 2026 |
| [packages](https://github.com/bart6114/loofah/tree/main/packages "packages") | [packages](https://github.com/bart6114/loofah/tree/main/packages "packages") | [docs: changelog for v0.32.4 [skip ci]](https://github.com/bart6114/loofah/commit/b8456e892c9fe67d44390e8b04221f8d149117c1 "docs: changelog for v0.32.4 [skip ci]") | Aug 28, 2026 |
| [plugins](https://github.com/bart6114/loofah/tree/main/plugins "plugins") | [plugins](https://github.com/bart6114/loofah/tree/main/plugins "plugins") | [Merge pull request](https://github.com/bart6114/loofah/commit/c34fd128c62f988c836f6f84ba6b28971d725650 "Merge pull request #51 from bart6114/chore/add-mcp-client-guide # Conflicts: # apps/desktop/src/i18n/locales/af/messages.ts # apps/desktop/src/i18n/locales/am/messages.ts # apps/desktop/src/i18n/locales/ar/messages.ts # apps/desktop/src/i18n/locales/as/messages.ts # apps/desktop/src/i18n/locales/az/messages.ts # apps/desktop/src/i18n/locales/ba/messages.ts # apps/desktop/src/i18n/locales/be/messages.ts # apps/desktop/src/i18n/locales/bg/messages.ts # apps/desktop/src/i18n/locales/bn/messages.ts # apps/desktop/src/i18n/locales/bo/messages.ts # apps/desktop/src/i18n/locales/br/messages.ts # apps/desktop/src/i18n/locales/bs/messages.ts # apps/desktop/src/i18n/locales/ca/messages.ts # apps/desktop/src/i18n/locales/cs/messages.ts # apps/desktop/src/i18n/locales/cy/messages.ts # apps/desktop/src/i18n/locales/da/messages.ts # apps/desktop/src/i18n/locales/de/messages.ts # apps/desktop/src/i18n/locales/el/messages.ts # apps/desktop/src/i18n/locales/en/messages.ts # apps/desktop/src/i18n/locales/es/messages.ts # apps/desktop/src/i18n/locales/et/messages.ts # apps/desktop/src/i18n/locales/eu/messages.ts # apps/desktop/src/i18n/locales/fa/messages.ts # apps/desktop/src/i18n/locales/ff/messages.ts # apps/desktop/src/i18n/locales/fi/messages.ts # apps/desktop/src/i18n/locales/fo/messages.ts # apps/desktop/src/i18n/locales/fr/messages.ts # apps/desktop/src/i18n/locales/ga/messages.ts # apps/desktop/src/i18n/locales/gl/messages.ts # apps/desktop/src/i18n/locales/gu/messages.ts # apps/desktop/src/i18n/locales/ha/messages.ts # apps/desktop/src/i18n/locales/he/messages.ts # apps/desktop/src/i18n/locales/hi/messages.ts # apps/desktop/src/i18n/locales/hr/messages.ts # apps/desktop/src/i18n/locales/ht/messages.ts # apps/desktop/src/i18n/locales/hu/messages.ts # apps/desktop/src/i18n/locales/hy/messages.ts # apps/desktop/src/i18n/locales/id/messages.ts # apps/desktop/src/i18n/locales/ig/messages.ts # apps/desktop/src/i18n/locales/is/messages.ts # apps/desktop/src/i18n/locales/it/messages.ts # apps/desktop/src/i18n/locales/ja/messages.ts # apps/desktop/src/i18n/locales/jv/messages.ts # apps/desktop/src/i18n/locales/ka/messages.ts # apps/desktop/src/i18n/locales/kk/messages.ts # apps/desktop/src/i18n/locales/km/messages.ts # apps/desktop/src/i18n/locales/kn/messages.ts # apps/desktop/src/i18n/locales/ko/messages.ts # apps/desktop/src/i18n/locales/ku/messages.ts # apps/desktop/src/i18n/locales/ky/messages.ts # apps/desktop/src/i18n/locales/la/messages.ts # apps/desktop/src/i18n/locales/lb/messages.ts # apps/desktop/src/i18n/locales/lg/messages.ts # apps/desktop/src/i18n/locales/ln/messages.ts # apps/desktop/src/i18n/locales/lo/messages.ts # apps/desktop/src/i18n/locales/lt/messages.ts # apps/desktop/src/i18n/locales/lv/messages.ts # apps/desktop/src/i18n/locales/mg/messages.ts # apps/desktop/src/i18n/locales/mi/messages.ts # apps/desktop/src/i18n/locales/mk/messages.ts # apps/desktop/src/i18n/locales/ml/messages.ts # apps/desktop/src/i18n/locales/mn/messages.ts # apps/desktop/src/i18n/locales/mr/messages.ts # apps/desktop/src/i18n/locales/ms/messages.ts # apps/desktop/src/i18n/locales/mt/messages.ts # apps/desktop/src/i18n/locales/my/messages.ts # apps/desktop/src/i18n/locales/ne/messages.ts # apps/desktop/src/i18n/locales/nl/messages.ts # apps/desktop/src/i18n/locales/nn/messages.ts # apps/desktop/src/i18n/locales/no/messages.ts # apps/desktop/src/i18n/locales/ny/messages.ts # apps/desktop/src/i18n/locales/oc/messages.ts # apps/desktop/src/i18n/locales/or/messages.ts # apps/desktop/src/i18n/locales/pa/messages.ts # apps/desktop/src/i18n/locales/pl/messages.ts # apps/desktop/src/i18n/locales/ps/messages.ts # apps/desktop/src/i18n/locales/pt/messages.ts # apps/desktop/src/i18n/locales/ro/messages.ts # apps/desktop/src/i18n/locales/ru/messages.ts # apps/desktop/src/i18n/locales/sa/messages.ts # apps/desktop/src/i18n/locales/sd/messages.ts # apps/desktop/src/i18n/locales/si/messages.ts # apps/desktop/src/i18n/locales/sk/messages.ts # apps/desktop/src/i18n/locales/sl/messages.ts # apps/desktop/src/i18n/locales/sn/messages.ts # apps/desktop/src/i18n/locales/so/messages.ts # apps/desktop/src/i18n/locales/sq/messages.ts # apps/desktop/src/i18n/locales/sr/messages.ts # apps/desktop/src/i18n/locales/su/messages.ts # apps/desktop/src/i18n/locales/sv/messages.ts # apps/desktop/src/i18n/locales/sw/messages.ts # apps/desktop/src/i18n/locales/ta/messages.ts # apps/desktop/src/i18n/locales/te/messages.ts # apps/desktop/src/i18n/locales/tg/messages.ts # apps/desktop/src/i18n/locales/th/messages.ts # apps/desktop/src/i18n/locales/tk/messages.ts # apps/desktop/src/i18n/locales/tl/messages.ts # apps/desktop/src/i18n/locales/tr/messages.ts # apps/desktop/src/i18n/locales/tt/messages.ts # apps/desktop/src/i18n/locales/uk/messages.ts # apps/desktop/src/i18n/locales/ur/messages.ts # apps/desktop/src/i18n/locales/uz/messages.ts # apps/desktop/src/i18n/locales/vi/messages.ts # apps/desktop/src/i18n/locales/wo/messages.ts # apps/desktop/src/i18n/locales/xh/messages.ts # apps/desktop/src/i18n/locales/yi/messages.ts # apps/desktop/src/i18n/locales/yo/messages.ts # apps/desktop/src/i18n/locales/zh/messages.ts # apps/desktop/src/i18n/locales/zu/messages.ts # apps/desktop/src/settings/general/index.tsx # plugins/settings/js/bindings.gen.ts")#51[from bart6114/chore/add-mcp-client-guide](https://github.com/bart6114/loofah/commit/c34fd128c62f988c836f6f84ba6b28971d725650 "Merge pull request #51 from bart6114/chore/add-mcp-client-guide # Conflicts: # apps/desktop/src/i18n/locales/af/messages.ts # apps/desktop/src/i18n/locales/am/messages.ts # apps/desktop/src/i18n/locales/ar/messages.ts # apps/desktop/src/i18n/locales/as/messages.ts # apps/desktop/src/i18n/locales/az/messages.ts # apps/desktop/src/i18n/locales/ba/messages.ts # apps/desktop/src/i18n/locales/be/messages.ts # apps/desktop/src/i18n/locales/bg/messages.ts # apps/desktop/src/i18n/locales/bn/messages.ts # apps/desktop/src/i18n/locales/bo/messages.ts # apps/desktop/src/i18n/locales/br/messages.ts # apps/desktop/src/i18n/locales/bs/messages.ts # apps/desktop/src/i18n/locales/ca/messages.ts # apps/desktop/src/i18n/locales/cs/messages.ts # apps/desktop/src/i18n/locales/cy/messages.ts # apps/desktop/src/i18n/locales/da/messages.ts # apps/desktop/src/i18n/locales/de/messages.ts # apps/desktop/src/i18n/locales/el/messages.ts # apps/desktop/src/i18n/locales/en/messages.ts # apps/desktop/src/i18n/locales/es/messages.ts # apps/desktop/src/i18n/locales/et/messages.ts # apps/desktop/src/i18n/locales/eu/messages.ts # apps/desktop/src/i18n/locales/fa/messages.ts # apps/desktop/src/i18n/locales/ff/messages.ts # apps/desktop/src/i18n/locales/fi/messages.ts # apps/desktop/src/i18n/locales/fo/messages.ts # apps/desktop/src/i18n/locales/fr/messages.ts # apps/desktop/src/i18n/locales/ga/messages.ts # apps/desktop/src/i18n/locales/gl/messages.ts # apps/desktop/src/i18n/locales/gu/messages.ts # apps/desktop/src/i18n/locales/ha/messages.ts # apps/desktop/src/i18n/locales/he/messages.ts # apps/desktop/src/i18n/locales/hi/messages.ts # apps/desktop/src/i18n/locales/hr/messages.ts # apps/desktop/src/i18n/locales/ht/messages.ts # apps/desktop/src/i18n/locales/hu/messages.ts # apps/desktop/src/i18n/locales/hy/messages.ts # apps/desktop/src/i18n/locales/id/messages.ts # apps/desktop/src/i18n/locales/ig/messages.ts # apps/desktop/src/i18n/locales/is/messages.ts # apps/desktop/src/i18n/locales/it/messages.ts # apps/desktop/src/i18n/locales/ja/messages.ts # apps/desktop/src/i18n/locales/jv/messages.ts # apps/desktop/src/i18n/locales/ka/messages.ts # apps/desktop/src/i18n/locales/kk/messages.ts # apps/desktop/src/i18n/locales/km/messages.ts # apps/desktop/src/i18n/locales/kn/messages.ts # apps/desktop/src/i18n/locales/ko/messages.ts # apps/desktop/src/i18n/locales/ku/messages.ts # apps/desktop/src/i18n/locales/ky/messages.ts # apps/desktop/src/i18n/locales/la/messages.ts # apps/desktop/src/i18n/locales/lb/messages.ts # apps/desktop/src/i18n/locales/lg/messages.ts # apps/desktop/src/i18n/locales/ln/messages.ts # apps/desktop/src/i18n/locales/lo/messages.ts # apps/desktop/src/i18n/locales/lt/messages.ts # apps/desktop/src/i18n/locales/lv/messages.ts # apps/desktop/src/i18n/locales/mg/messages.ts # apps/desktop/src/i18n/locales/mi/messages.ts # apps/desktop/src/i18n/locales/mk/messages.ts # apps/desktop/src/i18n/locales/ml/messages.ts # apps/desktop/src/i18n/locales/mn/messages.ts # apps/desktop/src/i18n/locales/mr/messages.ts # apps/desktop/src/i18n/locales/ms/messages.ts # apps/desktop/src/i18n/locales/mt/messages.ts # apps/desktop/src/i18n/locales/my/messages.ts # apps/desktop/src/i18n/locales/ne/messages.ts # apps/desktop/src/i18n/locales/nl/messages.ts # apps/desktop/src/i18n/locales/nn/messages.ts # apps/desktop/src/i18n/locales/no/messages.ts # apps/desktop/src/i18n/locales/ny/messages.ts # apps/desktop/src/i18n/locales/oc/messages.ts # apps/desktop/src/i18n/locales/or/messages.ts # apps/desktop/src/i18n/locales/pa/messages.ts # apps/desktop/src/i18n/locales/pl/messages.ts # apps/desktop/src/i18n/locales/ps/messages.ts # apps/desktop/src/i18n/locales/pt/messages.ts # apps/desktop/src/i18n/locales/ro/messages.ts # apps/desktop/src/i18n/locales/ru/messages.ts # apps/desktop/src/i18n/locales/sa/messages.ts # apps/desktop/src/i18n/locales/sd/messages.ts # apps/desktop/src/i18n/locales/si/messages.ts # apps/desktop/src/i18n/locales/sk/messages.ts # apps/desktop/src/i18n/locales/sl/messages.ts # apps/desktop/src/i18n/locales/sn/messages.ts # apps/desktop/src/i18n/locales/so/messages.ts # apps/desktop/src/i18n/locales/sq/messages.ts # apps/desktop/src/i18n/locales/sr/messages.ts # apps/desktop/src/i18n/locales/su/messages.ts # apps/desktop/src/i18n/locales/sv/messages.ts # apps/desktop/src/i18n/locales/sw/messages.ts # apps/desktop/src/i18n/locales/ta/messages.ts # apps/desktop/src/i18n/locales/te/messages.ts # apps/desktop/src/i18n/locales/tg/messages.ts # apps/desktop/src/i18n/locales/th/messages.ts # apps/desktop/src/i18n/locales/tk/messages.ts # apps/desktop/src/i18n/locales/tl/messages.ts # apps/desktop/src/i18n/locales/tr/messages.ts # apps/desktop/src/i18n/locales/tt/messages.ts # apps/desktop/src/i18n/locales/uk/messages.ts # apps/desktop/src/i18n/locales/ur/messages.ts # apps/desktop/src/i18n/locales/uz/messages.ts # apps/desktop/src/i18n/locales/vi/messages.ts # apps/desktop/src/i18n/locales/wo/messages.ts # apps/desktop/src/i18n/locales/xh/messages.ts # apps/desktop/src/i18n/locales/yi/messages.ts # apps/desktop/src/i18n/locales/yo/messages.ts # apps/desktop/src/i18n/locales/zh/messages.ts # apps/desktop/src/i18n/locales/zu/messages.ts # apps/desktop/src/settings/general/index.tsx # plugins/settings/js/bindings.gen.ts") | Aug 27, 2026 |
| [scripts](https://github.com/bart6114/loofah/tree/main/scripts "scripts") | [scripts](https://github.com/bart6114/loofah/tree/main/scripts "scripts") | [chore: drop legacy target cache compatibility](https://github.com/bart6114/loofah/commit/9be34393b6678e32a689c09c4d66d5e4069dcbbb "chore: drop legacy target cache compatibility") | Aug 26, 2026 |
| [skills/loofah](https://github.com/bart6114/loofah/tree/main/skills/loofah "This path skips through empty directories") | [skills/loofah](https://github.com/bart6114/loofah/tree/main/skills/loofah "This path skips through empty directories") | [refactor!: rename CLI command to loof](https://github.com/bart6114/loofah/commit/8ff50d42b006db87c10fcc988f1a1a12726c2ffc "refactor!: rename CLI command to loof") | Aug 27, 2026 |
| [.dockerignore](https://github.com/bart6114/loofah/blob/main/.dockerignore ".dockerignore") | [.dockerignore](https://github.com/bart6114/loofah/blob/main/.dockerignore ".dockerignore") | [new stt bridge transcribe interface](https://github.com/bart6114/loofah/commit/2729d002a53e3aae7f4ab2e636fc4d26bef50ee1 "new stt bridge transcribe interface") | Jan 16, 2025 |
| [.gitattributes](https://github.com/bart6114/loofah/blob/main/.gitattributes ".gitattributes") | [.gitattributes](https://github.com/bart6114/loofah/blob/main/.gitattributes ".gitattributes") | [refactor: move resources to src-tauri directory and update LFS tracking](https://github.com/bart6114/loofah/commit/97708007815594c78eb4e247b12f3602c25221f2 "refactor: move resources to src-tauri directory and update LFS tracking") | Sep 21, 2025 |
| [.gitignore](https://github.com/bart6114/loofah/blob/main/.gitignore ".gitignore") | [.gitignore](https://github.com/bart6114/loofah/blob/main/.gitignore ".gitignore") | [feat(docs): publish docs site via Cloudflare Workers static assets](https://github.com/bart6114/loofah/commit/126e44806f9b7ef440be34937284b38bc180d8b2 "feat(docs): publish docs site via Cloudflare Workers static assets Convert the Mintlify docs source to Astro Starlight, add an assets-only Worker config with freemeetingtranscriber.com custom domains, and deploy automatically from main via docs_deploy.yaml. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>") | Aug 10, 2026 |
| [.oxfmtrc.json](https://github.com/bart6114/loofah/blob/main/.oxfmtrc.json ".oxfmtrc.json") | [.oxfmtrc.json](https://github.com/bart6114/loofah/blob/main/.oxfmtrc.json ".oxfmtrc.json") | [chore: remove ghosts of the deleted server-side apps](https://github.com/bart6114/loofah/commit/7061efb213f1175b9b375cc1e41a17ef79cc0838 "chore: remove ghosts of the deleted server-side apps 6e14decdb deleted apps/web, apps/api, supabase/ and the backend crates, but left machinery pointing at them. apps/web kept reappearing on disk because two #[cfg(test)] codegen helpers wrote reference docs into it on every cargo test run. Stop the codegen and remove what it fed: - plugins/{hooks,deeplink2}: drop export_docs() from the export test and delete both src/docs.rs - delete crates/docs, whose only consumers were those two files, and its hypr-docs workspace dependency plus the serde_yaml deps it needed - delete apps/web Remove the remaining references to deleted trees: - bacon.toml ran `cargo run -p api` and watched three deleted crates; the whole file was dead - xtask's supabase-patch command read the deleted supabase/config.toml and would have failed at runtime; its toml_ensure_table helper had no other caller - apps/web globs in .oxlintrc.json, eslint.config.js and .oxfmtrc.json - the supabase and @infisical/cli devDeps, whose supabase/ directory and .infisical.json are both gone AGENTS.md described a web app that no longer exists and documented `pnpm -F @hypr/web dev`, a command with no package behind it. Verified: cargo check --workspace, cargo check --all-targets on the affected crates, cargo test (13 passed), pnpm -F desktop typecheck, dprint fmt. apps/web is not recreated by a test run. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>") | Jul 31, 2026 |
| [.oxlintrc.json](https://github.com/bart6114/loofah/blob/main/.oxlintrc.json ".oxlintrc.json") | [.oxlintrc.json](https://github.com/bart6114/loofah/blob/main/.oxlintrc.json ".oxlintrc.json") | [chore: remove ghosts of the deleted server-side apps](https://github.com/bart6114/loofah/commit/7061efb213f1175b9b375cc1e41a17ef79cc0838 "chore: remove ghosts of the deleted server-side apps 6e14decdb deleted apps/web, apps/api, supabase/ and the backend crates, but left machinery pointing at them. apps/web kept reappearing on disk because two #[cfg(test)] codegen helpers wrote reference docs into it on every cargo test run. Stop the codegen and remove what it fed: - plugins/{hooks,deeplink2}: drop export_docs() from the export test and delete both src/docs.rs - delete crates/docs, whose only consumers were those two files, and its hypr-docs workspace dependency plus the serde_yaml deps it needed - delete apps/web Remove the remaining references to deleted trees: - bacon.toml ran `cargo run -p api` and watched three deleted crates; the whole file was dead - xtask's supabase-patch command read the deleted supabase/config.toml and would have failed at runtime; its toml_ensure_table helper had no other caller - apps/web globs in .oxlintrc.json, eslint.config.js and .oxfmtrc.json - the supabase and @infisical/cli devDeps, whose supabase/ directory and .infisical.json are both gone AGENTS.md described a web app that no longer exists and documented `pnpm -F @hypr/web dev`, a command with no package behind it. Verified: cargo check --workspace, cargo check --all-targets on the affected crates, cargo test (13 passed), pnpm -F desktop typecheck, dprint fmt. apps/web is not recreated by a test run. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>") | Jul 31, 2026 |
| [AGENTS.md](https://github.com/bart6114/loofah/blob/main/AGENTS.md "AGENTS.md") | [AGENTS.md](https://github.com/bart6114/loofah/blob/main/AGENTS.md "AGENTS.md") | [refactor!: rename CLI command to loof](https://github.com/bart6114/loofah/commit/8ff50d42b006db87c10fcc988f1a1a12726c2ffc "refactor!: rename CLI command to loof") | Aug 27, 2026 |
| [CLAUDE.md](https://github.com/bart6114/loofah/blob/main/CLAUDE.md "CLAUDE.md") | [CLAUDE.md](https://github.com/bart6114/loofah/blob/main/CLAUDE.md "CLAUDE.md") | [Update CLAUDE.md to reference AGENTS.md (#1775)](https://github.com/bart6114/loofah/commit/b0b63ad8c671b1b0a3ef6c815b3322392975a342 "Update CLAUDE.md to reference AGENTS.md (#1775) https://github.com/anthropics/claude-code/issues/6235") | Nov 21, 2025 |
| [CONTRIBUTING.md](https://github.com/bart6114/loofah/blob/main/CONTRIBUTING.md "CONTRIBUTING.md") | [CONTRIBUTING.md](https://github.com/bart6114/loofah/blob/main/CONTRIBUTING.md "CONTRIBUTING.md") | [chore: rename product to Loofah](https://github.com/bart6114/loofah/commit/4125f15f90c6a201dfcf5ccb80bf720d1c6cc5c6 "chore: rename product to Loofah") | Aug 26, 2026 |
| [Cargo.lock](https://github.com/bart6114/loofah/blob/main/Cargo.lock "Cargo.lock") | [Cargo.lock](https://github.com/bart6114/loofah/blob/main/Cargo.lock "Cargo.lock") | [refactor!: rename CLI command to loof](https://github.com/bart6114/loofah/commit/8ff50d42b006db87c10fcc988f1a1a12726c2ffc "refactor!: rename CLI command to loof") | Aug 27, 2026 |
| [Cargo.toml](https://github.com/bart6114/loofah/blob/main/Cargo.toml "Cargo.toml") | [Cargo.toml](https://github.com/bart6114/loofah/blob/main/Cargo.toml "Cargo.toml") | [feat: human-readable personal session folders (](https://github.com/bart6114/loofah/commit/b49f4a64f3990c002ae8de7d9c8978d130f1ede8 "feat: human-readable personal session folders (#29) * fix(cli): report app version from root package.json The bundled fmtr CLI reported its crate version (0.1.0) instead of the app version. A build script now injects the root package.json version, so --version, the MCP server info, and doctor's cli_version track every release bump automatically. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(desktop): soften language warning when batch fallback covers it When the live on-device model can't transcribe a configured language but the batch fallback can, show an informational toast explaining the transcript arrives after the recording, instead of a warning implying the language won't be transcribed at all. Languages unsupported even by the batch model keep the hard warning. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat: human-readable personal session folders Implements docs/plans/human-readable-personal-session-folders.md (all six phases). Session directories become \"YYYY-MM-DD — title — shortid\"; the full UUID in _meta.json stays the only identity everywhere. - vault-read: layout module (recursive discovery, id lookup, typed diagnostics, NFC name comparison); readers resolve by _meta.json.id with *_path_in helpers; id-based path builders deprecated. - vault-write: location catalog on SessionStore (resolve under the write lock), readable-name creation with suffix widening, pure naming module, provisional-Untitled rename reconciled on first title (deferred while recording, retried at startup), delete/undo via exact recorded trash paths, write-journal prefix remap across renames, idempotent startup migration of legacy UUID-named directories. - consumers: fs-sync-core (identity-based classification, delete_folder guard, moves preserve basenames), listener-core recorder resolver, transcription VTT export, desktop watcher (catalog lookup + coalesced structural rebuild), CLI import/transcribe/collision checks, and resource-path.ts now asks the backend for the session directory. Rollout note: single-release cutover — machines sharing a synced vault must all upgrade before first launch. Hook scripts receive the physical (readable) --resource-dir path now. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019XZNtkHprDyftRjsuEwjP1 * chore(desktop): regenerate stale i18n catalogs `lingui extract` picks up the batch-fallback language-warning strings from 2123775d2, which landed on main without a catalog refresh; desktop-ci's i18n:check fails on any branch touching desktop paths until they're committed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019XZNtkHprDyftRjsuEwjP1 * fix: harden session-layout edge cases from code review Applies the confirmed findings of the pre-merge review pass: - rebuild_index runs its scan + catalog swap under the store write lock so it can no longer revert the catalog past a concurrent rename, protects sessions homed under an unreadable folder from being pruned (descendant-aware match), and records duplicate-id claims on the store so lazy resolution blocks instead of letting find_session's legacy fast path silently re-adopt one claimant; ghost scanning no longer descends into a flagged ghost's content. - delete_session resolves the directory before dropping the live transcript buffer and the recording guard, so a failed resolution loses nothing. - The watcher ignores hidden entries under sessions/ (a Finder-touched .DS_Store no longer triggers full rebuilds) and falls back to per-id refreshes when a structural rebuild fails. - Provisional-name reconcile skips titles that sanitize to \"Untitled\" (rename ping-pong), and session_date falls through to created_at when started_at is malformed instead of stamping the migration date. - fs-sync: orphan-audio retention again protects any directory carrying a _meta.json (parseable or not); identity-miss resolution falls back to a nested directory named for the id when its meta is corrupt/absent (never adopting another session's directory); moveSession/renameFolder refresh the store's location catalog immediately instead of waiting for the watcher. - Recording-start registers the active-recording guard synchronously in the lifecycle event callback, narrowing the first-title rename race. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019XZNtkHprDyftRjsuEwjP1 --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>")#29[)](https://github.com/bart6114/loofah/commit/b49f4a64f3990c002ae8de7d9c8978d130f1ede8 "feat: human-readable personal session folders (#29) * fix(cli): report app version from root package.json The bundled fmtr CLI reported its crate version (0.1.0) instead of the app version. A build script now injects the root package.json version, so --version, the MCP server info, and doctor's cli_version track every release bump automatically. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(desktop): soften language warning when batch fallback covers it When the live on-device model can't transcribe a configured language but the batch fallback can, show an informational toast explaining the transcript arrives after the recording, instead of a warning implying the language won't be transcribed at all. Languages unsupported even by the batch model keep the hard warning. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat: human-readable personal session folders Implements docs/plans/human-readable-personal-session-folders.md (all six phases). Session directories become \"YYYY-MM-DD — title — shortid\"; the full UUID in _meta.json stays the only identity everywhere. - vault-read: layout module (recursive discovery, id lookup, typed diagnostics, NFC name comparison); readers resolve by _meta.json.id with *_path_in helpers; id-based path builders deprecated. - vault-write: location catalog on SessionStore (resolve under the write lock), readable-name creation with suffix widening, pure naming module, provisional-Untitled rename reconciled on first title (deferred while recording, retried at startup), delete/undo via exact recorded trash paths, write-journal prefix remap across renames, idempotent startup migration of legacy UUID-named directories. - consumers: fs-sync-core (identity-based classification, delete_folder guard, moves preserve basenames), listener-core recorder resolver, transcription VTT export, desktop watcher (catalog lookup + coalesced structural rebuild), CLI import/transcribe/collision checks, and resource-path.ts now asks the backend for the session directory. Rollout note: single-release cutover — machines sharing a synced vault must all upgrade before first launch. Hook scripts receive the physical (readable) --resource-dir path now. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019XZNtkHprDyftRjsuEwjP1 * chore(desktop): regenerate stale i18n catalogs `lingui extract` picks up the batch-fallback language-warning strings from 2123775d2, which landed on main without a catalog refresh; desktop-ci's i18n:check fails on any branch touching desktop paths until they're committed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019XZNtkHprDyftRjsuEwjP1 * fix: harden session-layout edge cases from code review Applies the confirmed findings of the pre-merge review pass: - rebuild_index runs its scan + catalog swap under the store write lock so it can no longer revert the catalog past a concurrent rename, protects sessions homed under an unreadable folder from being pruned (descendant-aware match), and records duplicate-id claims on the store so lazy resolution blocks instead of letting find_session's legacy fast path silently re-adopt one claimant; ghost scanning no longer descends into a flagged ghost's content. - delete_session resolves the directory before dropping the live transcript buffer and the recording guard, so a failed resolution loses nothing. - The watcher ignores hidden entries under sessions/ (a Finder-touched .DS_Store no longer triggers full rebuilds) and falls back to per-id refreshes when a structural rebuild fails. - Provisional-name reconcile skips titles that sanitize to \"Untitled\" (rename ping-pong), and session_date falls through to created_at when started_at is malformed instead of stamping the migration date. - fs-sync: orphan-audio retention again protects any directory carrying a _meta.json (parseable or not); identity-miss resolution falls back to a nested directory named for the id when its meta is corrupt/absent (never adopting another session's directory); moveSession/renameFolder refresh the store's location catalog immediately instead of waiting for the watcher. - Recording-start registers the active-recording guard synchronously in the lifecycle event callback, narrowing the first-title rename race. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019XZNtkHprDyftRjsuEwjP1 --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>") | Aug 16, 2026 |
| [LICENSE](https://github.com/bart6114/loofah/blob/main/LICENSE "LICENSE") | [LICENSE](https://github.com/bart6114/loofah/blob/main/LICENSE "LICENSE") | [feat: rebrand UI strings, docs, and plugin/notification text](https://github.com/bart6114/loofah/commit/809506c2fd32664bc441f7b5e53a7a08b533e4be "feat: rebrand UI strings, docs, and plugin/notification text Sweep every user-visible \"Anarlog\" string in apps/desktop/src, the tray/ deeplink/updater2/windows plugins, the macOS notification Swift strings, and the AI chat system prompt templates over to \"Free Meeting Transcriber\" (or \"AI\"/\"fmtr\" where the more specific rule applies). Rewrite the root README, LICENSE (add copyright line), AGENTS.md, and docs/AGENTS.md for the fork. Also: - Delete the three dead-code branches deferred from Task 6 (STT health.tsx Deepgram branch, context.tsx startTrial/upgradeToPro, model-icon.tsx cloud icon branch). - Gut the dead `useWebResources` hosted \"web templates\" fetch (called Anarlog's now-gone backend) into a local no-op instead of hitting a domain this fork doesn't own. - Fix a real bug in plugins/updater2's legacy app-bundle-rename migration: it still renamed old installs to \"Anarlog.app\" instead of the current \"Free Meeting Transcriber.app\"/\"...Staging.app\" names. - Fix a stale e2e binary path and a stale dev:relay script left over from Task 8's rename. - Point the tray's Report Bug/Suggest Feature links, and any other dead anarlog.so/docs.anarlog.so link, at the GitHub repo instead. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>") | Jul 23, 2026 |
| [README.md](https://github.com/bart6114/loofah/blob/main/README.md "README.md") | [README.md](https://github.com/bart6114/loofah/blob/main/README.md "README.md") | [fix: remove stale telemetry controls and refine docs](https://github.com/bart6114/loofah/commit/0f59d610296b6d7da20418f8ba9b55e502b93f29 "fix: remove stale telemetry controls and refine docs") | Aug 27, 2026 |
| [Taskfile.yaml](https://github.com/bart6114/loofah/blob/main/Taskfile.yaml "Taskfile.yaml") | [Taskfile.yaml](https://github.com/bart6114/loofah/blob/main/Taskfile.yaml "Taskfile.yaml") | [refactor(debrand): purge all hyprnote/anarlog/char branding](https://github.com/bart6114/loofah/commit/66b1d67403109c92b775b03416f74166955bfe45 "refactor(debrand): purge all hyprnote/anarlog/char branding Rename the serialized STT provider id to \"fmtr\" (AdapterKind/BatchProvider/ TS settings id) and drop the dead cloud-proxy domain detection (localhost /stt sidecar detection remains). Rename E2EE domain constants to fmtr-e2ee-* (fresh start; old recovery keys/blobs intentionally invalidated), sidecar binaries to fmtr-sidecar-*, hook flag to --app-fmtr, env vars to FMTR_*, crate anarlog-cli to fmtr-cli, lib to fmtr_desktop_lib, tracing fields to fmtr.*. Delete legacy-brand migration shims (updater2 app renames, importer hyprnote source + legacy/ crates, storage folder fallbacks, tray/detect/ embedded_cli legacy arms, hyprnote:// deeplinks), dead cloud artifacts (go module, stt_e2e workflow, cloudsync verify scripts, cn_* actions, hosted-provider TS branches, ANARLOG_CLOUDSYNC_* test rigs), and stale brand docs/reports/skills. Kept per allow-list: model CDN URLs, LICENSE attribution, hypr prefix. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>") | Jul 24, 2026 |
| [doxxer.cli.toml](https://github.com/bart6114/loofah/blob/main/doxxer.cli.toml "doxxer.cli.toml") | [doxxer.cli.toml](https://github.com/bart6114/loofah/blob/main/doxxer.cli.toml "doxxer.cli.toml") | [chore(release): remove nightly channel (#5229)](https://github.com/bart6114/loofah/commit/aadb164a1ce8af9a51dd165e4f719d8c2bed3038 "chore(release): remove nightly channel (#5229) * chore(release): remove nightly channel Remove nightly release configuration, download routes, desktop channel handling, and related helper scripts. * chore(changelog): add 1.0.27 release notes Add the desktop 1.0.27 changelog covering recording, transcription, summaries, and UI/account updates.") | May 16, 2026 |
| [doxxer.desktop.toml](https://github.com/bart6114/loofah/blob/main/doxxer.desktop.toml "doxxer.desktop.toml") | [doxxer.desktop.toml](https://github.com/bart6114/loofah/blob/main/doxxer.desktop.toml "doxxer.desktop.toml") | [chore(release): remove nightly channel (#5229)](https://github.com/bart6114/loofah/commit/aadb164a1ce8af9a51dd165e4f719d8c2bed3038 "chore(release): remove nightly channel (#5229) * chore