Commit graph

11 commits

Author SHA1 Message Date
blamouche
120c66071d Drop CLIs and Claude Code from descriptions to clear sentence-case flags
The community bot still flagged two sentence-case violations after
0.1.38. Both sit in the manifest.json description: the plural acronym
"CLIs" and the multi-word product name "Claude Code" — neither is in
the linter's known-acronym / proper-noun lists, so they get flagged
mid-sentence.

Reworded the description to "Run AI coding tools like Claude or Codex
from a right sidebar terminal panel." in both manifest.json (the field
the bot actually scans) and package.json (kept in sync for npm
metadata). Also switched the local ESLint config from `recommended` to
`recommendedWithLocalesEn` so future runs match the bot's severity,
and added explicit ignores for non-source JSON / lockfiles.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:44:58 +02:00
blamouche
89ab3ae679 Add eslint-plugin-obsidianmd and resolve every recommended-rule violation
Install the official Obsidian ESLint plugin (with eslint v9 and
@typescript-eslint/parser) and add an eslint.config.mjs flat config
that wires the recommended ruleset to TS files only, with a small
override turning off hardcoded-config-path for the tests directory
(those literal `.obsidian` strings are unit-test fixtures, not real
Obsidian configuration usage). Add an `npm run lint` script and call
it from the CI workflow before tests so guideline violations surface
on every push and PR.

Resolved every reported violation:

- UI text sentence case: button labels @Active file/@Active folder ->
  @active file/@active folder; "(no runtime configured)" placeholder
  capitalised; ribbon tooltip "Open Any AI CLI" -> "Open AI CLI panel";
  command-list placeholders, descriptions, and the runtimes-section
  empty state reworded to drop ambiguous mid-sentence acronyms (PTY,
  CLIs, Node) and quoted button names.
- commands/no-plugin-name-in-command-name: command palette name
  "Open Any AI CLI" -> "Open panel" (Obsidian shows the plugin name
  next to the command, repeating it is redundant).
- prefer-active-doc on globalThis: replace the inline crypto fallback
  in runtime-utils.ts with `import { randomUUID } from "node:crypto"`.
- no-unsupported-api on Workspace.revealLeaf: bump manifest.json
  minAppVersion to 1.7.2 (the version that introduced revealLeaf) and
  await the call. versions.json maps 0.1.38 -> 1.7.2 while older
  entries stay at 1.5.0 so existing downloads keep resolving.

Lint, build, tsc and the 27 vitest cases are all clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:20:53 +02:00
blamouche
6e2839a92b Resolve Obsidian community-store automated-scan issues
Audit-driven fixes from the bot's automated review:

- Replace every require() in main.ts with top-level ES imports
  (child_process.spawn, fs, os, path) so the
  @typescript-eslint/no-require-imports rule passes.
- Drop unnecessary `async` on onOpen, onClose, onunload, and
  startClaudeProcess: none of them used `await`, and onunload is
  declared `void` on the Plugin base class so a Promise return was
  flagged as a type mismatch. onOpen and onClose now return
  Promise.resolve() to keep matching the ItemView interface.
- Replace the async ribbon-icon and command callbacks with sync
  callbacks that explicitly `void` the activateView promise — fixes
  the "Promise returned in function argument where a void return was
  expected" warning without losing fire-and-forget semantics.
- Rename UI labels to sentence case (the docs guideline only allows
  capitals on the first word and on acronyms / proper nouns):
  - View display text: "CLI AI Assistant" -> "Any AI CLI".
  - Ribbon tooltip and command name: "Open CLI AI Assistant"
    -> "Open Any AI CLI".
  - Auto-start hint message: "Click Start" -> "Click start".
- Drop the redundant plugin prefix on the command id ("open-claude-
  code-panel" -> "open-panel") since Obsidian auto-prefixes command
  ids with the plugin id.
- Tighten activateView to bail out cleanly when getRightLeaf(false)
  returns null, removing the only remaining strict-mode TS error.

Validated with `npm run build`, `npx tsc --noEmit` (clean) and the
27 vitest cases.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:10:51 +02:00
blamouche
3bc7fb521f Rename plugin id to any-ai-cli for community submission
The Obsidian submission bot rejected obsidian-any-ai-cli because the
guideline asks plugins not to include "obsidian" in their id (the id
becomes the plugin folder name; brevity helps sorting). Verified
any-ai-cli is free in the public community-plugins.json, then renamed
the id everywhere it surfaces:
- manifest.json (id) and bumped to 0.1.36
- versions.json (added 0.1.36 entry)
- package.json (npm name) and package-lock.json (re-synced)
- .github/workflows/release.yml (PLUGIN_ID env var → release zip name)
- README.md install paths and zip filename references

Existing personal installs must rename their plugin folder to
.obsidian/plugins/any-ai-cli before this version.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 08:47:09 +02:00
blamouche
1863b3e96b Rename plugin id to obsidian-any-ai-cli and bump to 0.1.35
The plugin was rebranded to "Any AI CLI" earlier in this branch, but
the manifest id remained obsidian-any-ai-code from the original name.
Aligning the id ahead of the community-store submission so the
community-plugins.json entry, the manifest id, the plugin folder name
and the release zip filename all match.

Updated:
- manifest.json id and version
- versions.json (added 0.1.35)
- package.json name and version
- package-lock.json (re-synced)
- .github/workflows/release.yml PLUGIN_ID env var
- README.md install paths and release-zip filename references

GitHub repo URLs (blamouche/obsidian-any-ai-code) are intentionally
unchanged — the repo itself is not being renamed at this time.

Existing local installs must rename their plugin folder from
.obsidian/plugins/obsidian-any-ai-code to .obsidian/plugins/obsidian-any-ai-cli
to keep the plugin discoverable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 08:39:59 +02:00
blamouche
351fb29dae Bump plugin version to 0.1.34
Aligns manifest.json, versions.json, package.json, and package-lock.json
with the Prompt Hub version so the 0.1.34 release tag ships a manifest
matching the tag — covers the Obsidian community-store compliance pass
(LICENSE, settings setHeading, no leaf detach on unload, draft release).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 08:26:57 +02:00
blamouche
d6a3c1c5b9 Bump plugin version to 0.1.33
Aligns manifest.json, versions.json, package.json, and package-lock.json
with the Prompt Hub version so the upcoming 0.1.33 release tag ships a
manifest matching the tag (covers the customizable runtime list, the
two-row sidebar reorg, the polished button styling with green Start /
red Stop / blue file-context highlights, and the new @Active folder
button).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 07:56:57 +02:00
blamouche
4e21c4504f Bump plugin version to 0.1.26
Aligns manifest.json, versions.json, package.json, and package-lock.json
with the Prompt Hub version so the 0.1.26 release zip ships a manifest
matching the tag name (and uses the new zero-command install flow in
the release notes template).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 09:33:16 +02:00
blamouche
2559a9b45b Fix node-pty crash by making native dep optional in proxy
The plugin advertises a fallback chain (PTY → Python bridge → direct
pipe → script), but a missing node-pty native module killed the proxy
at top-level require before any fallback could run. Wrap require in
try/catch and surface a clear unavailable error from spawnWithFallback,
so users who haven't run npm install --omit=dev (or whose node-pty
build failed) still get a working terminal via the Python bridge.

Bumps plugin manifest + package metadata to 0.1.25.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 09:26:52 +02:00
blamouche
9f6f6ecb43 Bump plugin version to 0.1.24
Aligns manifest.json, versions.json, package.json, and package-lock.json
with the Prompt Hub version so the upcoming 0.1.24 release tag matches
the manifest published in the release zip and on Obsidian's update path.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 09:22:01 +02:00
blamouche
8f9574e0d0 Translate README to English and finalize plugin runtime/test setup 2026-03-05 09:27:44 +01:00