Skip to content

Commit

Permalink
Add mutedeck extension
Browse files Browse the repository at this point in the history
- chore: update dependencies and remove react-devtools
- docs: add SECURITY.md explaining vulnerability management strategy
- Enhance API utility by exporting getPreferences function for improved preference management
- Remove Husky configuration and related dependencies from the project to resolve CI issues.
- Remove Husky to fix CI issues
- Add back node-fetch import for HTTP requests
- Clean up API code and remove unused types
- Update .gitignore to allow husky files
- Add husky pre-commit hook to run linting
- Enhance package.json with precommit linting script and remove debug logs from index.tsx
- Update icons in package.json, replace deprecated files, and improve documentation on icon requirements and troubleshooting
- Update documentation and reorganize assets - Update GitHub repository links in all docs - Clean up and reorganize icon assets - Update package.json with correct icon paths
- Restore .png extensions for icons
- Remove .png extensions from icon paths
- Update icon locations and paths
- Update icon paths to be relative to assets directory
- Clean up repository structure and add TypeScript config
- Add package.json to repository
- Major update: Icon fixes, documentation and asset reorganization
- chore: initial commit with gitignore
  • Loading branch information
chadrwalters committed Jan 17, 2025
1 parent d97fca7 commit 4b8af8d
Show file tree
Hide file tree
Showing 48 changed files with 11,323 additions and 0 deletions.
67 changes: 67 additions & 0 deletions extensions/mutedeck/.Plan
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
PROJECT: MuteDeck Raycast Extension Publication
STATUS: In Progress
DEADLINE: TBD

[X] Core Functionality
[X] Toggle Microphone command
[X] Toggle Video command
[X] Leave Meeting command
[X] Show Status command
[X] API integration
[X] Error handling
[X] User preferences

[~] Documentation
[X] README.md with features and setup
[X] CHANGELOG.md with version history
[X] Development guidelines (docs/development.md)
[X] Architecture documentation (docs/architecture.md)
[X] Keyboard shortcuts guide (docs/keyboard-shortcuts.md)
[ ] Update GitHub repository links in README and docs
[X] Add troubleshooting.md guide referenced in store description

[X] Testing & Quality (as per development.md)
[X] Manual testing of all commands
[X] Integration testing with MuteDeck app
[X] API interaction verification
[X] State management testing
[X] Error handling verification
[X] UI/UX consistency check
[X] Performance profiling

[~] Store Assets
[X] Store description (assets/store/description.md)
[X] Store screenshots (in progress, assets/store/screenshots/)
[X] Verify all screenshot descriptions match actual images
[X] Final review of store assets
[ ] Create demo video (optional, as noted in description)

[X] Security & Compliance
[X] Local-only API communication documented
[X] Privacy considerations in store description
[X] Complete security review of API endpoints
[X] Add explicit data handling documentation
[X] Verify license file matches MIT license

[X] Release Preparation
[X] Package.json configuration
[X] Dependencies up to date
[X] Project structure documented
[X] Version number finalized in package.json
[X] Release date set in CHANGELOG
[X] Git tags prepared
[X] Release notes prepared

[IN PROGRESS] Store Submission
[X] Final store listing preview
[X] Internal review checklist
[IN PROGRESS] Submit for Raycast review
[ ] Address reviewer feedback
[ ] Prepare launch announcement

NOTES:
- GitHub repository needs to be made public before updating links
- Screenshots are in progress but need final review
- Development guidelines are comprehensive and should be followed for testing
- Store description is complete but needs link updates
- Consider adding more error scenarios to troubleshooting guide
60 changes: 60 additions & 0 deletions extensions/mutedeck/.cursornotes
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Project Notes

## 2024-02-13
- Project initialized: Raycast extension for MuteDeck integration
- Reviewed architecture requirements and project structure
- Established core features:
- Microphone mute toggle
- Video toggle
- Leave meeting functionality
- Defined initial project structure and implementation plan
- Key technical decisions:
- Using TypeScript for type safety
- Following Raycast's recommended extension architecture
- Implementing real-time status monitoring
- Robust error handling for common failure cases
- Development Tools Available:
- Manage Extensions Command (Raycast built-in)
- CLI tools for build/develop/lint
- ESLint configuration for best practices
- VS Code extension (community tool) for enhanced development
- Next steps identified:
- Set up development environment
- Create extension scaffold
- Implement API wrapper
- Setup Progress:
- ✅ Installed Node.js (v23.5.0) and npm (v10.9.2)
- ✅ Installed @raycast/api package globally
- ✅ RESOLVED: Found correct extension creation process
- Must use Raycast app's built-in "Create Extension" command
- Will use "Detail" template for rich UI capabilities
- Development workflow:
1. Create extension through Raycast app
2. Run npm install in created directory
3. Start development with npm run dev
4. Use VS Code for development
- No CLI tools needed for initial creation

## 2024-02-14
- Core functionality implemented:
- ✅ Toggle microphone command
- ✅ Toggle video command
- ✅ Leave meeting command
- ✅ Status view
- API integration complete:
- ✅ Status monitoring
- ✅ Command endpoints
- ✅ Error handling
- Moving to Polish Phase:
- Identified Bear extension as quality benchmark
- Created comprehensive polish plan
- Key focus areas:
1. Assets and Visual Identity
2. Documentation Quality
3. Enhanced User Experience
4. Code Quality
5. Repository Structure
- Next Steps:
- Create new prompt for polish phase
- Follow Bear extension's example
- Implement professional-grade improvements
82 changes: 82 additions & 0 deletions extensions/mutedeck/.cursorrules
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Nova Project Rules

1. Package Management
- Use Poetry ONLY
- Direct pip usage is FORBIDDEN

2. Vision Model
- Use "gpt-4o" model for vision recognition
- Do NOT use gpt-4-vision-preview or any other vision models

3 AI Commands
When I submit a command to you, you MUST follow the procedure outlined in the command.

- "update docs":
- procedure:
1. "Parse all Markdown files in docs/**/*.md and README.md"
2. "Extract relevant updates from conversation"
3. "Apply any relevant and useful updates"

- "update plan":
- procedure:
1. "You MUST read the .Plan file"
2. "Extract relevant updates from conversation"
3. "Apply any relevant and useful updates to the .Plan file"

- "update rules":
- procedure:
1. "Parse .cursorrules file"
2. "Extract rule updates from conversation"
3. "Apply any relevant and useful updates"

- "capture thoughts":
- procedure:
1. "You MUST read the .cursorscratchpad file"
2. "Extract relevant insights from current context"
3. "Interleave your thoughts with previous thoughts in the <SCRATCHPAD> buffer"
4. "You MUST write your thoughts in the <SCRATCHPAD> buffer"
5. "Consolidate your thoughts as necessary, grouping related thoughts together"

- "update cursornotes":
- procedure:
1. "You MUST read the .cursornotes and .cursorscratchpad files"
2. "Consolidate previous thoughts from <SCRATCHPAD>"
3. "Integrate new information from current conversation"
4. "Format as dated entry, request date from user"
5. "Append to .cursornotes file"
6. "Clear <SCRATCHPAD> section in .cursorscratchpad"

- "run tests":
- procedure:
1. "You MUST poetry run pytest"

- "clean run":
- procedure:
1. "You MUST poetry run python -m nova.cleanup -a && poetry run python -m nova.cli --config config/nova.yaml"

- "fix pre-commit":
- procedure:
1. "You MUST poetry run pre-commit run mypy --all-files"
2. "You MUST fix all the errors"

- "create prompt":
- procedure:
1. "You MUST run the capture thoughts command first"
2. "You MUST run the update cursornotes command"
3. "You MUST ask the user if we are implementing a current plan"
4. "If yes, you MUST read the current plan file"
5. "You MUST create a comprehensive prompt that includes:"
- "Context from cursornotes"
- "Plan data if applicable"
- "Clear statement of current goal"
- "Instructions for getting context"
- "Next steps"
- "How to use Nova's file structure"
- "Required tools and commands"
- "You should summarize and link to the relevant docs, instead of just saying all the text that we ahve captured elsewhere."





66 changes: 66 additions & 0 deletions extensions/mutedeck/.cursorscratchpad
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Current Thoughts
<SCRATCHPAD>
- Project involves creating a Raycast extension for MuteDeck integration
- Core functionality revolves around meeting controls (mute, video, leave)
- Need to handle real-time status monitoring and error cases
- Architecture follows standard Raycast extension patterns with clear separation of concerns
- Initial focus is on setting up development environment and project structure
- TypeScript will be primary language with React-based UI components
- Error handling strategy needs to be robust for common failure modes
- RESOLVED: Previous CLI tool issues clarified
- Extension creation should be done through Raycast app's "Create Extension" command
- No direct npm creation commands needed
- Will use "Detail" template for rich UI capabilities

POLISH PHASE INSIGHTS:
- Need to follow Bear extension's example for professional quality
- Key areas for polish:
1. Assets and Visual Identity
- MuteDeck icon integration
- Consistent command icons
- Professional screenshots/GIFs
2. Documentation Quality
- Clear, comprehensive README
- Inline code documentation
- Usage examples and troubleshooting
3. Enhanced User Experience
- Better error messages
- Loading states
- Keyboard shortcut suggestions
4. Code Quality
- TypeScript strict mode
- ESLint/Prettier setup
- Pre-commit hooks
5. Repository Structure
- Professional organization
- Clear contribution guidelines
- Version history tracking

PROMPT REQUIREMENTS:
- Context from current implementation
- Clear goals for polish phase
- Reference to Bear extension as quality standard
- Step-by-step approach to improvements
- Focus on user experience and professional quality
- Tools and commands needed
- File structure and organization

- Development Tools to Use:
- ray CLI commands for development:
- ray develop: Start development mode
- ray build: Build the extension
- ray lint: Check code quality
- VS Code extension for better development experience
- Manage Extensions command in Raycast for testing
- Next steps:
- Set up development environment with npm install
- Start development server with ray develop
- Implement core functionality using available tools
</SCRATCHPAD>

# Reference Information
- Local API endpoint: http://localhost:3491/
- Key endpoints: status, mute, video, leave
- Must handle: MuteDeck not running, no active meeting, command failures
- Bear extension as reference: https://www.raycast.com/hmarr/bear
- Repository structure example: https://github.com/raycast/extensions/tree/main/extensions/bear
8 changes: 8 additions & 0 deletions extensions/mutedeck/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module.exports = {
extends: ['@raycast'],
parserOptions: {
ecmaVersion: 2021,
sourceType: 'module',
project: './tsconfig.json',
},
};
86 changes: 86 additions & 0 deletions extensions/mutedeck/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# Virtual environments
.env
.venv
env/
venv/
ENV/

# IDE
.idea/
.vscode/
*.swp
*.swo
.DS_Store

# Testing
.coverage
coverage.xml
htmlcov/
.pytest_cache/
.mypy_cache/

# Nova specific
logs/
cache/
output/
*.log
config/nova.yaml
.env

# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
.npm/
.yarn/
.pnp.*

# TypeScript
*.tsbuildinfo
.tscache/
*.js.map

# Raycast Extension
.raycast-swift-build/
.build/
*.xcodeproj
.raycast/

# Development
.env.local
.env.development.local
.env.test.local
.env.production.local

# Misc
.tmp/
.temp/
*.bak
*.backup
*~
.history/
.cache/
10 changes: 10 additions & 0 deletions extensions/mutedeck/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"semi": true,
"trailingComma": "es5",
"singleQuote": true,
"printWidth": 100,
"tabWidth": 2,
"useTabs": false,
"bracketSpacing": true,
"arrowParens": "avoid"
}
Loading

0 comments on commit 4b8af8d

Please sign in to comment.