Skip to content

Conversation

@mssoftjp
Copy link

I am submitting a new Community Plugin

Repo URL

Link to my plugin:https://github.com/mssoftjp/obsidian-voice-input

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.

@ObsidianReviewBot
Copy link
Collaborator

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

Required

[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]: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 Aug 11, 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 Aug 11, 2025
@ObsidianReviewBot ObsidianReviewBot removed their assignment Aug 11, 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.

@Fevol Fevol self-requested a review October 20, 2025 19:33
@Fevol
Copy link
Collaborator

Fevol commented Oct 20, 2025

Required Changes

Your plugin description in the manifest.json should follow the style guide, I also noticed that your description in the repository differs with the one in this PR.
https://github.com/mssoftjp/obsidian-voice-input/blob/a1cfdf716c7474a2c034f9706f7effcfc6b61bb7/manifest.json#L6-L7


The audio.... and dictionary... styles could also use the same prefix as the rest of your classes.
https://github.com/mssoftjp/obsidian-voice-input/blob/a1cfdf716c7474a2c034f9706f7effcfc6b61bb7/src/styles/voice-input.css#L398-L450
https://github.com/mssoftjp/obsidian-voice-input/blob/a1cfdf716c7474a2c034f9706f7effcfc6b61bb7/src/styles/voice-input.css#L268-L387


Optional Feedback

You should update your versions.json for version 0.8.0, to not be 17.0.0.
https://github.com/mssoftjp/obsidian-voice-input/blob/a1cfdf716c7474a2c034f9706f7effcfc6b61bb7/versions.json#L2

Your package.json contains a couple deployment scripts that you mention in your README.md, but they cannot be found in the repository.
https://github.com/mssoftjp/obsidian-voice-input/blob/a1cfdf716c7474a2c034f9706f7effcfc6b61bb7/package.json#L9-L15

If possible, consider using the Vault APIs over Adapter APIs.
[1] [2] [3] [4] [5] [6]

@Fevol Fevol 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 Oct 20, 2025
@Fevol Fevol self-assigned this Oct 20, 2025
@Fevol Fevol removed their request for review October 20, 2025 20:45
@ObsidianReviewBot ObsidianReviewBot self-assigned this Nov 8, 2025
@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]
Unexpected undescribed directive comment. Include descriptions to explain why the comment is necessary.

[1][2][3][4][5][6][7][8][9][10][11]
This assertion is unnecessary since it does not change the type of the expression.

[1][2][3][4][5][6][7][8][9][10]
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]
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]
Async method 'startContinuousProcessing' has no 'await' expression.

[1]
createScriptProcessor is deprecated. MDN Reference

[1]
onaudioprocess is deprecated. MDN Reference

[1]
inputBuffer is deprecated. MDN Reference

[1][2][3][4][5][6]
destroy is deprecated. dispose()を使用してください

[1][2]
Expected the Promise rejection reason to be an Error.

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

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

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

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

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

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

[1][2][3]
Unnecessary escape character: /.

[1][2]
Unnecessary escape character: ..

[1]
Unnecessary escape character: \s.

[1]
Unused eslint-disable directive (no problems were reported from 'no-console').

[1][2][3][4][5][6][7][8]
Disabling 'no-console' is not allowed.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
Use sentence case for UI text.

[1]
The command ID should not include the plugin ID. Obsidian will make sure that there are no conflicts with other plugins.

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

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

[1]
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]
Async arrow function has no 'await' expression.

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

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

[1]
A method that is not declared with this: void may cause unintentional scoping of this when separated from its object.
Consider using an arrow function or explicitly .bind()ing the method to avoid calling the method with an unintended this value.
If a function does not access this, it can be annotated with this: void.

[1]
"debugMode" | "logLevel" | "pluginLanguage" | "transcriptionLanguage" | "openaiApiKey" | "enableTranscriptionCorrection" | "transcriptionModel" | "vadMode" | "maxRecordingSeconds" | "customDictionary" | "advanced" is overridden by string in this union type.

[1]
Promise-returning function provided to variable where a void return was expected.

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

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

[1][2]
Promise-returning function provided to property where a void return was expected.

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

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


Optional

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

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

[1][2][3][4][5][6][7]
'error' is defined but never used.

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

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

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

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

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

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

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

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

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

[1][2][3]
'_' is defined but never used.

[1]
'_error' 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][10][11]
Unexpected undescribed directive comment. Include descriptions to explain why the comment is necessary.

[1][2][3][4][5][6][7][8][9][10][11]
This assertion is unnecessary since it does not change the type of the expression.

[1][2][3][4][5][6][7][8][9][10]
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]
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]
Async method 'startContinuousProcessing' has no 'await' expression.

[1]
createScriptProcessor is deprecated. MDN Reference

[1]
onaudioprocess is deprecated. MDN Reference

[1]
inputBuffer is deprecated. MDN Reference

[1][2][3][4][5][6]
destroy is deprecated. dispose()を使用してください

[1][2]
Expected the Promise rejection reason to be an Error.

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

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

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

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

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

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

[1][2][3]
Unnecessary escape character: /.

[1][2]
Unnecessary escape character: ..

[1]
Unnecessary escape character: \s.

[1]
Unused eslint-disable directive (no problems were reported from 'no-console').

[1][2][3][4][5][6][7][8]
Disabling 'no-console' is not allowed.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
Use sentence case for UI text.

[1]
The command ID should not include the plugin ID. Obsidian will make sure that there are no conflicts with other plugins.

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

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

[1]
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]
Async arrow function has no 'await' expression.

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

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

[1]
A method that is not declared with this: void may cause unintentional scoping of this when separated from its object.
Consider using an arrow function or explicitly .bind()ing the method to avoid calling the method with an unintended this value.
If a function does not access this, it can be annotated with this: void.

[1]
"debugMode" | "logLevel" | "pluginLanguage" | "transcriptionLanguage" | "openaiApiKey" | "enableTranscriptionCorrection" | "transcriptionModel" | "vadMode" | "maxRecordingSeconds" | "customDictionary" | "advanced" is overridden by string in this union type.

[1]
Promise-returning function provided to variable where a void return was expected.

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

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

[1][2]
Promise-returning function provided to property where a void return was expected.

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

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


Optional

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

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

[1][2][3][4][5][6][7]
'error' is defined but never used.

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

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

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

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

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

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

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

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

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

[1][2][3]
'_' is defined but never used.

[1]
'_error' 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]
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][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]
Use sentence case for UI text.

[1]
Async arrow function has no 'await' expression.

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

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


Optional

[1][2][3][4][5][6][7]
'_error' 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]
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][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]
Use sentence case for UI text.

[1]
Async arrow function has no 'await' expression.

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

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


Optional

[1][2][3][4][5][6][7]
'_error' 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][10][11][12][13]
Use sentence case for UI text.


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.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants