Skip to content

Prepare for the community directory as GitHub Enterprise Sync - #1

Merged
wandermyz merged 6 commits into
mainfrom
catalog-readiness
Oct 18, 2026
Merged

wandermyz merged 6 commits into
mainfrom
catalog-readiness

Conversation

@wandermyz

Copy link
Copy Markdown
Owner

Readiness work for submitting to the Obsidian community directory.

  • Rename to GitHub Enterprise Sync (github-enterprise-sync) — ids can't contain "obsidian" and "GitHub Sync" is taken.
  • Review fixes: typed API responses, no console logging, styles.css, vault.configDir guard, Vault API for note files, declarative settings (minAppVersion → 1.13.0).
  • Bug fix: GitHub API reads now send Cache-Control: no-cache; Obsidian's requestUrl was serving cached branch heads for up to 60 s.
  • README: network/privacy disclosure and screenshots.
  • Tests: in-Obsidian suite (desktop + emulated phone), Obsidian ESLint rules, and a CI workflow running everything.

Draft while CI is verified on GitHub.

🤖 Generated with Claude Code

wandermyz and others added 4 commits October 18, 2026 00:01
Rename the plugin to "GitHub Enterprise Sync" (id github-enterprise-sync):
plugin ids may not contain "obsidian", and "GitHub Sync" is already taken.
The description now leads with what sets it apart: GitHub Enterprise
Server, the REST API instead of a Git binary, OAuth device flow, mobile.

Review fixes:
- Type every GitHub API and OAuth response; remove console.log calls;
  move the sign-in modal's inline styles into styles.css.
- Refuse the vault's actual config folder (vault.configDir) rather than a
  hardcoded .obsidian, so a renamed config folder can't be overwritten
  from the repo.
- Send Cache-Control: no-cache on API reads. Obsidian's requestUrl honoured
  GitHub's max-age=60, so a sync within a minute of the last one could see
  a stale branch head and miss commits from another device.
- Prefer the Vault API for note files (modify/create/readBinary, and
  FileManager.trashFile for deletes); fall back to the adapter for hidden
  paths and when the index lags the disk. Listing stays on the filesystem,
  where index lag can't masquerade as a local deletion.
- Build the settings tab from getSettingDefinitions(), so it's searchable;
  minAppVersion is now 1.13.0.
- README: network use and privacy disclosure, screenshots.

Testing:
- tests/app/ runs the built plugin inside the real Obsidian desktop app,
  on desktop and in phone emulation, over the DevTools protocol.
- npm run screenshots regenerates docs/screenshots/ with identifying
  values redacted.
- Obsidian's ESLint rules run via npm run lint.
- The e2e config accepts environment variables and an E2E_TOKEN.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Unit tests and lint on every push and PR; the e2e suite and the
in-Obsidian suite (macOS runner, latest Obsidian release) when the
E2E_TOKEN secret is available, skipping otherwise.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… dir

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A freshly installed Obsidian on the CI runner wasn't registered with Launch
Services yet, so `open -a Obsidian` failed to find it. Launch by path, and
register the app after installing it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
wandermyz and others added 2 commits October 18, 2026 00:19
The e2e and app suites run concurrently in CI against one test branch.
A helper commit could read the head, then lose the ref update to the other
suite's commit and fail with 422 "not a fast forward". Rebuild on the new
head and retry; each run only touches its own folder.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@wandermyz
wandermyz marked this pull request as ready for review October 18, 2026 07:22
@wandermyz
wandermyz merged commit 7374e29 into main Oct 18, 2026
3 checks passed
@wandermyz
wandermyz deleted the catalog-readiness branch October 18, 2026 07:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant