Skip to content

Conversation

mikethicke
Copy link

I am submitting a new Community Plugin

Repo URL

Link to my plugin: https://github.com/Epistemic-Technology/co-intelligence

Release Checklist

  • I have tested the plugin on
    • Windows
    • macOS
    • Linux
    • 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:

❌ It seems like you made a typo in the repository field https://github.com/Epistemic-Technology/co-intelligence.
❌ 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: https://github.com/Epistemic-Technology/co-intelligence. If you are submitting from a GitHub org, you need to be a public member of the org.
❌ It seems like you made a typo in the repository field https://github.com/Epistemic-Technology/co-intelligence.
❌ Please don't include Obsidian in the plugin description
❌ You don't have a manifest.json at the root of your repo, or it could not be parsed.
❌ 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:

❌ It seems like you made a typo in the repository field https://github.com/Epistemic-Technology/co-intelligence.
❌ 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: https://github.com/Epistemic-Technology/co-intelligence. If you are submitting from a GitHub org, you need to be a public member of the org.
❌ It seems like you made a typo in the repository field https://github.com/Epistemic-Technology/co-intelligence.
❌ You don't have a manifest.json at the root of your repo, or it could not be parsed.
❌ 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:

❌ It seems like you made a typo in the repository field https://github.com/epistemic-technology/co-intelligence.
❌ 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: https://github.com/epistemic-technology/co-intelligence. If you are submitting from a GitHub org, you need to be a public member of the org.
❌ It seems like you made a typo in the repository field https://github.com/epistemic-technology/co-intelligence.
❌ You don't have a manifest.json at the root of your repo, or it could not be parsed.
❌ 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 does not have the required isDesktopOnly 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.

@mikethicke
Copy link
Author

Updated manifest.json

@ObsidianReviewBot
Copy link
Collaborator

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

Required

[1][2][3][4][5][6][7]:You should not cast this, instead use a instanceof check to make sure that it's actually a file/folder.

[1][2]: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][3]: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][6][7][8][9][10][11][12][13]: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 11, 2025
@mikethicke
Copy link
Author

/skip The instances of assigning styles via Javascript are necessary for dynamically positioning a menu relative to a button. Other required changes have been addressed.

@github-actions github-actions bot added the Skipped code scan Code scanning skipped because submission is not in TS/author believes result is wrong label Jun 11, 2025
@mikethicke
Copy link
Author

Note: there is a PR here with non-JS menu positioning and screen recordings showing why I'm not using that solution:

Epistemic-Technology/co-intelligence#2

@joethei
Copy link
Collaborator

joethei commented Jul 28, 2025

"main": "main.js",
These are not valid manifest entries, remove them.

.workspace-tab-container {
Please don't overwrite core styling in a plugin, add another class/data attribute so it only applies to your plugin.

const currentNoteContent = await app.vault.cachedRead(note);
Use .read when you want to modify the file, ´.cachedRead` might be slightly out of date.

function getAllTags(cache: CachedMetadata | null): string[] {
Use the getAllTags function from the Obsidian API instead.

export function debounce<TArgs extends readonly unknown[]>(
The Obsidian API already includes a debounce function.

plugin,
This should not be the plugin instance, the component passed to this function should be as short lived as possible, otherwise this will lead to memory leaks.

and for the menu positioning, can't you use the existing Menu API?
https://docs.obsidian.md/Reference/TypeScript+API/Menu

@joethei joethei self-assigned this Jul 28, 2025
@joethei joethei added Minor changes requested PR can be merged after some final changes have been requested and removed Additional review required PR needs to be reviewed by another person, after the currently requested changes have been made Skipped code scan Code scanning skipped because submission is not in TS/author believes result is wrong labels Jul 28, 2025
@mikethicke
Copy link
Author

Thanks for this. I wasn't aware of the Menu API---I'll give that a try.

@mikethicke
Copy link
Author

  • removed main.js and main.css from manifest.json
  • removed styling from Obsidian class and added to plugin class
  • used read over cachedRead when modifying file
  • replaced redundant getAllTags function with Obsidian version
  • replaced redundant debounce function with Obsidian version
  • use local instance of MarkDownRenderChild as component passed to renderMarkdown rather than plugin

Regarding the menu positioning, I investigated the Menu API, and unless I'm missing something (very possible!), I don't think it's suitable for my purposes. I have a screenshot below of the menu in question. It's currently implemented as a SolidJS component.

Screenshot 2025-08-20 at 3 29 17 PM

FWIW I do have a css-only implementation in this PR: Epistemic-Technology/co-intelligence#2 , but the keyboard navigation in this version is really poor. It's more accessible and user friendly in my opinion to use the current method.

There is a PR here showing the changes I made: https://github.com/Epistemic-Technology/co-intelligence/pull/4/files

(It's cluttered with test files that can be ignored.)

@mikethicke mikethicke closed this Aug 26, 2025
@mikethicke mikethicke reopened this Aug 26, 2025
@mikethicke mikethicke closed this Aug 26, 2025
@mikethicke mikethicke reopened this Aug 26, 2025
@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 30, 2025
@mikethicke
Copy link
Author

I have switched the context menu to use the native Obsidian Menu component.

@ObsidianReviewBot
Copy link
Collaborator

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

Required

[1][2][3]:You should not cast this, instead use a instanceof check to make sure that it's actually a file/folder.


Optional

[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21][22][23][24][25][26][27][28][29][30] and more :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 Ready for review and removed Ready for review Changes requested Additional review required PR needs to be reviewed by another person, after the currently requested changes have been made labels Aug 31, 2025
@ObsidianReviewBot ObsidianReviewBot removed their assignment Aug 31, 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.

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