Skip to content

Conversation

@venturecrew
Copy link

I am submitting a new Community Plugin

  • I attest that I have done my best to deliver a high-quality plugin, am proud of the code I have written, and would recommend it to others. I commit to maintaining the plugin and being responsive to bug reports. If I am no longer able to maintain it, I will make reasonable efforts to find a successor maintainer or withdraw the plugin from the directory.

Repo URL

Link to my plugin: https://github.com/entire-vc/evc-local-sync-plugin

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 plugin'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.

@github-actions
Copy link

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: entire-vc/evc-local-sync-plugin. 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.

@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 Jan 30, 2026
@ObsidianReviewBot
Copy link
Collaborator

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

Required

[1]
Async method 'resolve' has no 'await' expression.

[1][2][3][4]
Obsidian's configuration folder is not necessarily .obsidian, it can be configured by the user. Use Vault#configDir to get the current value

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator.

[1][2][3][4][5][6][7][8][9]
Unexpected any. Specify a different type.

[1]
Async method 'watchDirectory' has no 'await' expression.

[1][2][3][4][5][6][7]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1][2][3][4][5][6][7]
Promise returned in function argument where a void return was expected.

[1]
Promise-returning method provided where a void return was expected by extended/implemented type 'Plugin'.

[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][31][32][33][34][35][36][37][38][39][40][41][42][43][44][45][46][47][48][49][50][51][52][53][54][55][56][57][58][59][60][61][62][63][64][65][66][67][68][69][70][71][72][73][74][75]
Use sentence case for UI text.

[1]
Async method 'validateExternalPath' has no 'await' expression.

[1]
Async method 'getMappingStats' has no 'await' expression.

[1]
Avoid setting styles directly via element.style.borderRadius. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5][6]
For a consistent UI use new Setting(containerEl).setName(...).setHeading() instead of creating HTML heading elements directly.

[1]
Do not write to DOM directly using innerHTML/outerHTML property

[1][2][3][4]
Unexpected confirm.

[1][2][3][4]
A require() style import is forbidden.

[1]
Async method 'getFileList' has no 'await' expression.

[1]
Unnecessary escape character: /.

[1]
Avoid setting styles directly via element.style.cursor. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4]
Avoid setting styles directly via element.style.display. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2]
Avoid setting styles directly via element.style.width. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2]
Unexpected undescribed directive comment. Include descriptions to explain why the comment is necessary.

[1][2]
Unused eslint-disable directive (no problems were reported from '@typescript-eslint/no-var-requires').

[1]
Disabling '@typescript-eslint/no-explicit-any' is not allowed.

[1]
This assertion is unnecessary since it does not change the type of the expression.

[1]
Expected non-Promise value in a boolean conditional.


Optional

[1]
'id' is assigned a value but never used.

[1]
Use 'FileManager.trashFile()' instead of 'Vault.delete()' to respect the user's file deletion preference.

[1]
'MappingManager' is defined but never used.


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan 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.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

@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][8][9]
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator.

[1][2][3][4][5][6][7]
Unexpected undescribed directive comment. Include descriptions to explain why the comment is necessary.

[1][2][3][4][5][6][7]
Disabling '@typescript-eslint/no-explicit-any' is not allowed.

[1][2][3][4][5]
Promise returned in function argument where a void return was expected.

[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][31][32][33][34][35][36][37][38][39][40][41][42][43][44][45][46][47][48][49][50][51][52][53][54][55][56][57][58][59][60][61][62][63][64][65][66][67][68][69][70]
Use sentence case for UI text.

[1]
Async method 'validate' has no 'await' expression.

[1]
Avoid casting to 'TFolder'. Use an 'instanceof TFolder' check to safely narrow the type.

[1][2]
Obsidian's configuration folder is not necessarily .obsidian, it can be configured by the user. Use Vault#configDir to get the current value

[1]
Avoid using "settings" in settings headings.

[1]
Avoid using a "General" heading in settings.

[1]
Unexpected await of a non-Promise (non-"Thenable") value.

[1]
Expected non-Promise value in a boolean conditional.


Optional

[1]
'id' is assigned a value but never used.

[1]
'logoImg' is assigned a value but never used.

[1]
Use 'FileManager.trashFile()' instead of 'Vault.delete()' to respect the user's file deletion preference.


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan 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.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

@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][8][9][10][11][12][13][14][15][16][17][18][19][20][21][22][23][24][25][26][27][28][29][30][31]
Use sentence case for UI text.

[1]
Avoid using "settings" in settings headings.

[1][2][3]
Promise returned in function argument where a void return was expected.

[1]
Expected non-Promise value in a boolean conditional.


Optional


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan 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.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

@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][8][9][10][11][12][13][14][15][16][17][18][19][20]
Use sentence case for UI text.

[1]
Avoid using "settings" in settings headings.


Optional


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan 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.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

@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][8][9][10][11][12][13][14][15][16]
Use sentence case for UI text.

[1]
Avoid using "settings" in settings headings.


Optional


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan 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.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

@venturecrew
Copy link
Author

/skip

The flagged items are either already in sentence case or are false positives:

Sentence case issues (already correct):

  1. main.ts:238, 304, 311, 368, 372 — Notice messages like "EVC Sync: no enabled mappings found" already use sentence case. The text after the colon is lowercase. "EVC Sync:" is the plugin identifier/brand prefix and is intentionally capitalized for consistency.

  2. settings.ts:140"EVC local sync to AI agent" is already in sentence case.

  3. ribbon-icon.ts:23"EVC Sync: sync all projects" is already in sentence case (lowercase after colon).

  4. status-bar.ts:35"EVC Sync status" is already in sentence case.

  5. mapping-modal.ts:97 — Description "(e.g., 'My project')" is already in sentence case.

Not UI text (technical values):

  1. settings.ts:329.setPlaceholder(".md, .canvas, .excalidraw.md") — These are file extensions, not user-facing UI text.

  2. settings.ts:348.setPlaceholder("node_modules, .git, attachments") — These are technical folder/pattern names, not UI text.

  3. mapping-modal.ts:117"~/DevProjects/my-project" — This is a file path example placeholder.

  4. mapping-modal.ts:149"docs" — This is a directory name example placeholder.

  5. conflict-modal.ts:92"vs" — Visual separator between two version panels in a comparison UI, not a label.

  6. dry-run-modal.ts:334"v" — Chevron character for collapsible toggle (alternates with ">"), not UI text.

Settings heading (false positive):

  1. settings.ts:166 — The heading is "Sync options", which does not contain the word "settings". This appears to be a false positive.

  2. settings.ts:397"No project mappings configured. Click 'Add mapping' to create one." — This is a complete sentence that correctly starts with a capital letter per standard English grammar.

@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 Jan 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Additional review required PR needs to be reviewed by another person, after the currently requested changes have been made Changes requested plugin Skipped code scan Code scanning skipped because submission is not in TS/author believes result is wrong

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants