Skip to content

Conversation

gabosgab
Copy link
Contributor

@gabosgab gabosgab commented Jun 29, 2025

I am submitting a new Community Plugin

Repo URL

Link to my plugin: https://github.com/gabosgab/ObsidianPrivateAI

Release Checklist

  • I have tested the plugin on
    • Windows
    • macOS
    • Linux (Tested on Ubuntu Desktop 24 LTS)
    • Android (if applicable)
    • iOS (if applicable)
  • My GitHub release contains all required files (as individual files, not just in the source.zip / source.tar.gz)
    • main.js
    • manifest.json
    • styles.css (optional)
  • GitHub release name matches the exact version number specified in my manifest.json (Note: Use the exact version number, don't include a prefix v)
  • The id in my manifest.json matches the id in the community-plugins.json file.
  • My README.md describes the plugin's purpose and provides clear usage instructions.
  • I have read the developer policies at https://docs.obsidian.md/Developer+policies, and have assessed my plugins's adherence to these policies.
  • I have read the tips in https://docs.obsidian.md/Plugins/Releasing/Plugin+guidelines and have self-reviewed my plugin to avoid these common pitfalls.
  • I have added a license in the LICENSE file.
  • My project respects and is compatible with the original license of any code from other plugins that I'm using.
    I have given proper attribution to these other projects in my README.md.

Copy link

Hello!

I found the following issues in your plugin submission

Errors:

❌ You did not follow the pull request template. The PR template can be found here
❌ Your manifest has the invalid dependencies property.
❌ Plugin ID mismatch, the ID in this PR (private-ai) is not the same as the one in your repo (obsidian-local-llm). If you just changed your plugin ID, remember to change it in the manifest.json in your repo and your latest GitHub release.
❌ Plugin name mismatch, the name in this PR (Private AI) is not the same as the one in your repo (Local LLM Chat). If you just changed your plugin name, remember to change it in the manifest.json in your repo and your latest GitHub release.
❌ Unable to find a release with the tag 1.0.0. Make sure that the version in your manifest.json file in your repo points to the correct Github Release.
❌ Your repository does not include a license. Go to https://choosealicense.com/ to compare different open source licenses.


This check was done automatically. Do NOT open a new PR for re-validation. Instead, to trigger this check again, make a change to your PR and wait a few minutes, or close and re-open it.

Copy link

Hello!

I found the following issues in your plugin submission

Errors:

❌ Your manifest has the invalid dependencies property.
❌ Unable to find a release with the tag 1.0.1. Make sure that the version in your manifest.json file in your repo points to the correct Github Release.


This check was done automatically. Do NOT open a new PR for re-validation. Instead, to trigger this check again, make a change to your PR and wait a few minutes, or close and re-open it.

@gabosgab gabosgab closed this Jun 30, 2025
@gabosgab gabosgab reopened this Jun 30, 2025
Copy link

Hello!

I found the following issues in your plugin submission

Errors:

❌ Your manifest has the invalid dependencies property.
❌ Your manifest has the invalid repository property.
❌ Your manifest has the invalid repositoryUrl property.


This check was done automatically. Do NOT open a new PR for re-validation. Instead, to trigger this check again, make a change to your PR and wait a few minutes, or close and re-open it.

@gabosgab gabosgab closed this Jun 30, 2025
@gabosgab gabosgab reopened this Jun 30, 2025
Copy link

Hello!

I found the following issues in your plugin submission

Errors:

❌ Unable to find a release with the tag 1.0.4. Make sure that the version in your manifest.json file in your repo points to the correct Github Release.


This check was done automatically. Do NOT open a new PR for re-validation. Instead, to trigger this check again, make a change to your PR and wait a few minutes, or close and re-open it.

@gabosgab gabosgab closed this Jun 30, 2025
@gabosgab gabosgab reopened this Jun 30, 2025
@github-actions github-actions bot changed the title Added Private AI Plugin Add plugin: Private AI Jun 30, 2025
@ObsidianReviewBot
Copy link
Collaborator

Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

Required

[1]:The command name should not include the plugin name.

[1][2][3][4][5][6]:Using innerHTML, outerHTML or similar API's is a security risk. Instead, use the DOM API or the Obsidian helper functions: https://docs.obsidian.md/Plugins/User+interface/HTML+elements

[1][2]:You should avoid assigning styles via JavaScript or in HTML and instead move all these styles into CSS so that they are more easily adaptable by themes and snippets.


Optional

[1][2][3][4][5]:Casting to any should be avoided as much as possible.


Do NOT open a new PR for re-validation.
Once you have pushed all of the required changes to your repo, the bot will update the labels on this PR within 6 hours.
If you think some of the required changes are incorrect, please comment with /skip and the reason why you think the results are incorrect.

@ObsidianReviewBot ObsidianReviewBot added Changes requested Additional review required PR needs to be reviewed by another person, after the currently requested changes have been made and removed Ready for review labels Jun 30, 2025
@gabosgab gabosgab closed this Jun 30, 2025
@gabosgab gabosgab reopened this Jun 30, 2025
@ObsidianReviewBot ObsidianReviewBot added Ready for review and removed Changes requested Additional review required PR needs to be reviewed by another person, after the currently requested changes have been made labels Jun 30, 2025
@ObsidianReviewBot ObsidianReviewBot removed their assignment Jun 30, 2025
@ObsidianReviewBot
Copy link
Collaborator

Changes requested by bot have been made, ready for additional review by human.
Please be aware that it might take a few weeks before your plugin is reviewed due to the high volume of submissions currently.

Copy link

github-actions bot commented Jul 7, 2025

Hello!

I found the following issues in your plugin submission

Errors:

❌ The newly added entry is not at the end, or you are submitting on someone else's behalf. The last plugin in the list is: vlwkaos/obsidian-smart-excluded. If you are submitting from a GitHub org, you need to be a public member of the org.


This check was done automatically. Do NOT open a new PR for re-validation. Instead, to trigger this check again, make a change to your PR and wait a few minutes, or close and re-open it.

@gabosgab gabosgab closed this Jul 7, 2025
@gabosgab gabosgab reopened this Jul 7, 2025
@ObsidianReviewBot ObsidianReviewBot removed their assignment Jul 7, 2025
@ObsidianReviewBot
Copy link
Collaborator

The automated review has not found any issues with your code, ready for manual review.

@Zachatoo Zachatoo self-assigned this Aug 3, 2025
@Zachatoo
Copy link
Collaborator

Zachatoo commented Aug 3, 2025

'Open Private AI', 'Open Tabs', 'Search Vault', 'Last 7 Days', 'No Context', 'Test Connection', 'Test Connection', 'Test Connection', 'Report a Problem', Private AI Version ${manifest.version}, 'Private AI Chat', 'New Chat', 'Open Tabs', 'Last 7 Days', '🔄 Test Connection', '🔄 Test Connection', '🔄 Test Connection'
Use sentence case in UI

const chatView = leaf.view as ChatView;
As of Obsidian v1.7.2, when Obsidian loads, all views are created as instances of DeferredView. Once a view is visible on screen (i.e. the tab is selected within its containing tab group), the leaf will re-render and the view will be switched out to the correct View instance. Please see understanding deferred views for how to safely access your custom view.

containerEl.createEl('h4', { text: 'Private AI' });
Don't add a top-level heading in the settings tab, such as "General", "Settings", or the name of your plugin.

systemPromptTextArea.style.width = '100%';
You should avoid assigning styles via JavaScript or in HTML and instead move all these styles into CSS so that they are more easily adaptable by themes and snippets.

containerEl.createEl('h4', { text: 'Search Settings' });
Avoid "settings" in settings headings

containerEl.createEl('h4', { text: 'Search Settings' });, containerEl.createEl('h4', { text: 'Support' });
For section headings in settings use:

new Setting(containerEl).setName('name here').setHeading();

const file = (leaf.view as unknown as MarkdownView).file;, const activeFile = (activeLeaf.view as unknown as MarkdownView).file;
Do an instanceof check instead.

const activeLeaf = this.app.workspace.activeLeaf;
The use of this field is discouraged. The recommended alternatives are:

  • If you need information about the current view, use Workspace.getActiveViewOfType.
  • If you need to open a new file or navigate a view, use Workspace.getLeaf.

const content = await this.app.vault.read(file);, const content = await this.app.vault.read(file);, const content = await this.app.vault.read(file);
Prefer to use Vault.cachedRead over Vault.read when you only want to read a file and not modify it

await MarkdownRenderer.renderMarkdown(, await MarkdownRenderer.renderMarkdown(
This is deprecated, use MarkdownRenderer.render instead.

this.plugin, this.plugin
The component passed to this function should not be the plugin instance, it's too long lived, it should only live as long as necessary, otherwise this leads to a memory leak.

document.execCommand('copy');, document.execCommand('copy');
Don't use deprecated APIs. All versions of Obsidian have access to the navigator.clipboard.writeText API, this fallback is not necessary.

"minAppVersion": "0.15.0",
You are using newer API's, set this to the latest public build number.


LoggingUtility.log('Loading Private AI plugin');
Please avoid unnecessary logging. Your logging utility will always choose to log this line because settings aren't loaded yet.

this.messageContainer.addEventListener('keydown', (e) => {
Do you need this? It doesn't look like you're doing anything in this event listener.

@Zachatoo Zachatoo added Changes requested Minor changes requested PR can be merged after some final changes have been requested and removed Ready for review labels Aug 3, 2025
@gabosgab
Copy link
Contributor Author

gabosgab commented Aug 4, 2025

Thank you for the great feedback @Zachatoo. I've updated the PR and addressed the items you've requested.

@ObsidianReviewBot ObsidianReviewBot added Ready for review Changes made and removed Changes requested Minor changes requested PR can be merged after some final changes have been requested labels Aug 4, 2025
@Zachatoo Zachatoo added Minor changes requested PR can be merged after some final changes have been requested Changes requested and removed Ready for review Changes made labels Aug 6, 2025
@gabosgab
Copy link
Contributor Author

gabosgab commented Aug 6, 2025

Oh derp, you're right I totally missed those. I've fixed them and pushed the requested changes.

I double checked with a few LLM's and confirmed that AI should be capitalized since it's an acronym. Happy to change if you disagree.

Thank you for your feedback!

@ObsidianReviewBot ObsidianReviewBot added Ready for review Changes made and removed Changes requested Minor changes requested PR can be merged after some final changes have been requested labels Aug 6, 2025
@Zachatoo Zachatoo merged commit c8f6f72 into obsidianmd:master Aug 8, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants