v2 - #141
Draft
saberzero1 wants to merge 104 commits into
Draft
Conversation
Replace full DOM teardown+rebuild with persistent shell and keyed row maps. TreeRenderer becomes PublicationTree class with mount()/update() lifecycle. DiffModal uses persistent header with replaceable content pane. ScrollSync now handles both vertical and horizontal scrolling. Indeterminate checkbox CSS styling added. All files selectable including published. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Remove stubbed RepositoryConnection class entirely. Add QuartzFileSource interface with RemoteFileSource (git remote) and LocalFileSource (local disk) implementations. Extract static methods to GitRemoteUtils with isomorphic-git HTTP transport. Migrate all 15 consuming files (10 source + 5 test). Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
NodeDetector checks Node.js >= 18 availability with session caching. QuartzRepoValidator checks quartzRepoPath for package.json and Quartz config. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Gate Quartz settings page to desktop only. Add setup wizard and manual setup commands with platform guards. Migrate Platform.isDesktop to Platform.isDesktopApp in external-fs. Mark 5 unused settings as deprecated, add schema v3 and v4 migrations. Add persistent notice and settings action for unconfigured repos. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
All 16 console.error calls across 7 integration files changed to console.debug. These are non-fatal errors in catch blocks that already return fallback values. CompilationQueue catch block also captures error variable for logging. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Add shared ASSET_EXTENSIONS with isMediaFile/isTextMediaFile/getMediaIcon. Add MediaLinkResolver to track which media is linked by published notes. Extend PublishStatus with MediaEntry and ArbitraryFileEntry types. Categorize media separately from deleted notes with linked/unlinked status. Add cleanOrphanedMedia, deleteByRepoPaths, publishArbitraryFiles to Publisher. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Add ManualSetupModal with URL validation, connection test, provider auto-detection, progressive disclosure, and advanced settings section. Fix setup wizard: paginated repo loading with search, v5 branch for new repos, correct GitHub Pages URL, Done button on success step. Add quartz.config.yaml creation from template defaults with baseUrl. Add content/index.md with welcome page for new repos. Extract detectGitProvider to shared utility. Add getFileContent and updateFile to GitHubApiService. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Change detectAll() from Promise.all to sequential loop to prevent terminatePendingProcess() from killing concurrent detections. Add proactive version warnings for Node.js < 18 and npm < 8. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Replace COMMANDS array with COMMAND_REGISTRY metadata system. Switch from registerObsidianProtocolHandler to registerCliHandler. Add help flag interceptor, base quartz-syncer command, verbose flag. Add shared requireQuartzRunner guard. Rewrite mark handler with glob, fuzzy search, and dry-run support. Add force flag to delete/sync, dry-run to publish/delete/sync. Add verbose output for status/test/publish/delete/sync handlers. Restructure plugin handler: list/add/remove work everywhere, install/enable/disable/config/prune require QuartzRunner. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Add timeout sentinel (-1 = no timeout) to ProcessRunner. Add timeout to QuartzRunnerOptions, wire through all methods. Refactor serve() to bypass ProcessRunner singleton pendingProcess. Add sync, restore, pluginInstall/Enable/Disable/Config/Prune methods. Add quartz-build, quartz-serve, quartz-sync, quartz-restore handlers. Add circuit breaker auto-recovery after 5 minute cooldown. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Add pauseAutoPublish/resumeAutoPublish to BackgroundEngine. Publication Center pauses auto-publish on open, resumes on close. Prevents race condition where auto-publish modifies files user is selecting. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Remove stale RepositoryConnection references and outdated CLI count. Document two-tier platform split, publication model, CLI registration via registerCliHandler, Quartz v5 config conventions, and working with external systems directive. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Publisher refactoring: - Extract PublishBackend interface with RemotePublishBackend and LocalPublishBackend - Extend QuartzFileSource with writeBinaryFile, deleteFile, listAllFiles - Refactor Publisher from GitBackend to PublishBackend abstraction - Wire local mode into getPublisher (quartzRepoPath takes priority) - Expose cliHandlers on plugin instance for test invocation New CLI commands: - quartz-syncer:repo (info, set-local, set-remote, verify) - quartz-syncer:media (list, orphaned, clean) - quartz-syncer:diff (compiled vault vs repo content) - quartz-syncer:validate (repo health checks with lockfile warning) - quartz-syncer:inspect (cache, hashes, compilation, queue) CLI gap filling: - Cache handler: export, import, prune actions - Config handler: reset action (partial, preserves identity fields) - Plugin handler: add/remove dry-run via structuredClone, search action - Publish/sync/delete: custom commit message param - Publish: action=arbitrary for non-content file publishing - Test handler: local mode path verification - Inspect handler: target=queue via getEngineStatus - Status handler: verbose enrichment with publishFlag and hasMedia Marketplace migration: - QuartzPluginRegistry: new URL, full marketplace schema - PluginBrowserModal: tags to category filter migration E2E test harness: - 6 Quartz repo fixtures (minimal through multi-plugin) - 3 vault templates (basic, media-heavy, bulk) - FixtureManager, RepoAssertions, CLI invoker helpers - 44 scenario specs across 10 spec files (43 passing) - wdio.conf.mts extended for scenario specs Unit tests: 522 total (41 new for CLI gap coverage)
saberzero1
force-pushed
the
quartz-npm-plugins-rework
branch
from
August 26, 2026 20:24
4048bff to
a4c130c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.