Detaching a method via `const fn = obj.method` loses its `this`
context. Replaced with Reflect.apply(fn, s, args) so the Obsidian
Settings object's internal `this.app` reference stays intact.
Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
Resolves all Required issues flagged by the Obsidian community plugin
review bot:
- Replace explicit `any` types with typed interfaces and intersection
types across providers, tools, UI components, and services
- Remove `async` from functions/methods with no `await`; return
Promise.resolve() where the interface demands Promise<string>
- Replace `fetch` bare global with `window.fetch` and remove
eslint-disable comments for no-restricted-globals
- Replace `globalThis.fetch` with `window.fetch` (prefer-active-doc)
- Replace string literal style assignments with template literals to
satisfy no-static-styles-assignment; remove disable comments
- Fix sentence case: "Apply all" / "Reject all" in en.json
- Change default chats folder migration to use regex instead of
hardcoded .obsidian/ path literal (hardcoded-config-path)
- Remove unnecessary type assertion in migrateSettings
- Remove await from non-Promise listFolder call (await-thenable)
- Add argsIgnorePattern to no-unused-vars in eslint.config.mjs
Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
Migrate to ESLint v9 flat config, integrate obsidianmd plugin, fix all
required errors (prefer-active-window-timers, no-tfile-tfolder-cast,
no-unsupported-api, floating promises, etc.), and bump minAppVersion to
1.7.2 to match revealLeaf API requirement.
Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
Adds required disclosures (account, payment, network use) to README and
README-cn.md per Obsidian developer policies.
Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
- Plugin id/name updated to obsidian-note-agent (Bin-Home)
- Class renamed ObsidianAgentPlugin → ObsidianNoteAgentPlugin throughout
- VIEW_TYPE and default chatsFolder path updated to match new id
- Status bar and provider indicator button now use activeProfile() so
the default model name shows instead of "-" when no override is set
- Indicator button separator changed from " / " to ":" to match status bar
- Add README.md and README-cn.md
Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>