|
| 1 | +# Memory Bank: Python Janus Client |
| 2 | + |
| 3 | +This Memory Bank provides comprehensive context about the Python Janus Client project for Cline (AI assistant) to maintain continuity across sessions. |
| 4 | + |
| 5 | +## Purpose |
| 6 | + |
| 7 | +After each session reset, Cline relies entirely on this Memory Bank to understand the project and continue work effectively. These files serve as the single source of truth for project context, decisions, and current state. |
| 8 | + |
| 9 | +## File Structure |
| 10 | + |
| 11 | +### Core Files (Read in Order) |
| 12 | + |
| 13 | +1. **[projectbrief.md](projectbrief.md)** - Foundation Document |
| 14 | + - Project identity and purpose |
| 15 | + - Core requirements and scope |
| 16 | + - Success criteria |
| 17 | + - Development principles |
| 18 | + - **Read this first** - shapes all other files |
| 19 | + |
| 20 | +2. **[productContext.md](productContext.md)** - Product Understanding |
| 21 | + - Why this project exists |
| 22 | + - Problems it solves |
| 23 | + - How it should work |
| 24 | + - User experience goals |
| 25 | + - User personas |
| 26 | + |
| 27 | +3. **[systemPatterns.md](systemPatterns.md)** - Architecture & Design |
| 28 | + - System architecture |
| 29 | + - Core components |
| 30 | + - Design patterns |
| 31 | + - Implementation patterns |
| 32 | + - Component relationships |
| 33 | + |
| 34 | +4. **[techContext.md](techContext.md)** - Technical Setup |
| 35 | + - Technology stack |
| 36 | + - Development setup |
| 37 | + - Build system (Hatch) |
| 38 | + - Testing strategy |
| 39 | + - Documentation system |
| 40 | + |
| 41 | +5. **[activeContext.md](activeContext.md)** - Current State |
| 42 | + - Current work focus |
| 43 | + - Recent changes |
| 44 | + - Active decisions |
| 45 | + - Important patterns |
| 46 | + - Next steps |
| 47 | + - **Most frequently updated** |
| 48 | + |
| 49 | +6. **[progress.md](progress.md)** - Project Status |
| 50 | + - What works |
| 51 | + - What's left to build |
| 52 | + - Known issues |
| 53 | + - Evolution of decisions |
| 54 | + - Roadmap |
| 55 | + |
| 56 | +## How to Use This Memory Bank |
| 57 | + |
| 58 | +### Starting a New Session |
| 59 | + |
| 60 | +1. **Always read ALL Memory Bank files** at the start of every task |
| 61 | +2. Start with `projectbrief.md` for foundation |
| 62 | +3. Read files in the order listed above |
| 63 | +4. Pay special attention to `activeContext.md` for current state |
| 64 | +5. Check `progress.md` for what's completed and what's pending |
| 65 | + |
| 66 | +### During Work |
| 67 | + |
| 68 | +- Reference relevant files as needed |
| 69 | +- Keep context in mind when making decisions |
| 70 | +- Follow established patterns and conventions |
| 71 | +- Document significant changes |
| 72 | + |
| 73 | +### Updating the Memory Bank |
| 74 | + |
| 75 | +Update when: |
| 76 | +- Discovering new project patterns |
| 77 | +- After implementing significant changes |
| 78 | +- When user requests "update memory bank" |
| 79 | +- When context needs clarification |
| 80 | + |
| 81 | +**When updating:** |
| 82 | +1. Review ALL files (even if some don't need updates) |
| 83 | +2. Focus on `activeContext.md` and `progress.md` |
| 84 | +3. Update cross-references if structure changes |
| 85 | +4. Keep information accurate and current |
| 86 | +5. Remove outdated information |
| 87 | + |
| 88 | +## File Relationships |
| 89 | + |
| 90 | +``` |
| 91 | +projectbrief.md (Foundation) |
| 92 | + ↓ |
| 93 | + ├─→ productContext.md (Why & How) |
| 94 | + ├─→ systemPatterns.md (Architecture) |
| 95 | + └─→ techContext.md (Technical) |
| 96 | + ↓ |
| 97 | + ├─→ activeContext.md (Current State) |
| 98 | + └─→ progress.md (Status) |
| 99 | +``` |
| 100 | + |
| 101 | +## Quick Reference |
| 102 | + |
| 103 | +### Project Essentials |
| 104 | +- **Name:** python_janus_client (PyPI: janus-client) |
| 105 | +- **Version:** 0.8.1 |
| 106 | +- **Type:** Python async WebRTC client library |
| 107 | +- **Build Tool:** Hatch |
| 108 | +- **Python:** 3.8-3.13 |
| 109 | +- **Coverage:** 82% |
| 110 | + |
| 111 | +### Key Commands |
| 112 | +```bash |
| 113 | +hatch env create # Setup environment |
| 114 | +hatch shell # Activate environment |
| 115 | +hatch test # Run tests |
| 116 | +hatch run docs-build # Build documentation |
| 117 | +hatch build # Build package |
| 118 | +``` |
| 119 | + |
| 120 | +### Key Files |
| 121 | +- `janus_client/session.py` - Core session management |
| 122 | +- `janus_client/plugin_*.py` - Plugin implementations |
| 123 | +- `janus_client/transport*.py` - Transport layer |
| 124 | +- `tests/test_*.py` - Test suite |
| 125 | +- `pyproject.toml` - Project configuration |
| 126 | + |
| 127 | +### Current Focus |
| 128 | +- Memory Bank initialization (this session) |
| 129 | +- WebSocket cleanup improvements (next priority) |
| 130 | +- Documentation enhancements (ongoing) |
| 131 | + |
| 132 | +### Known Issues |
| 133 | +1. WebSocket cleanup needs improvement |
| 134 | +2. Deprecation warnings from dependencies |
| 135 | +3. Occasional test flakiness (acceptable) |
| 136 | + |
| 137 | +## Important Reminders |
| 138 | + |
| 139 | +### Development Practices |
| 140 | +- **Always use Hatch** for development tasks |
| 141 | +- **Run tests** before committing |
| 142 | +- **Build docs with strict mode** to catch issues |
| 143 | +- **Maintain type hints** throughout |
| 144 | +- **Keep docstrings concise** but clear |
| 145 | +- **Test across Python versions** |
| 146 | + |
| 147 | +### Code Standards |
| 148 | +- **Line length:** 88 characters |
| 149 | +- **Docstrings:** Google-style |
| 150 | +- **Type hints:** Required for public APIs |
| 151 | +- **Async-first:** All I/O operations |
| 152 | +- **Context managers:** For resource management |
| 153 | + |
| 154 | +### Testing |
| 155 | +- **Target:** >80% coverage (currently 82%) |
| 156 | +- **Framework:** pytest with async support |
| 157 | +- **Run:** `hatch test -i py=3.8 -c` for coverage |
| 158 | +- **Integration tests:** May be flaky (acceptable) |
| 159 | + |
| 160 | +## Memory Bank Maintenance |
| 161 | + |
| 162 | +### Regular Updates |
| 163 | +- After significant code changes |
| 164 | +- When discovering new patterns |
| 165 | +- When project direction changes |
| 166 | +- When user requests update |
| 167 | + |
| 168 | +### Quality Checks |
| 169 | +- Ensure all cross-references are valid |
| 170 | +- Remove outdated information |
| 171 | +- Keep current state accurate |
| 172 | +- Maintain consistency across files |
| 173 | + |
| 174 | +### Version Control |
| 175 | +- Memory Bank files are version controlled |
| 176 | +- Track changes with meaningful commits |
| 177 | +- Review changes during code review |
| 178 | +- Keep in sync with code changes |
| 179 | + |
| 180 | +## Contact & Support |
| 181 | + |
| 182 | +For questions about the Memory Bank structure or content: |
| 183 | +- Review this README |
| 184 | +- Check individual file headers |
| 185 | +- Refer to project documentation |
| 186 | +- Ask the user for clarification |
| 187 | + |
| 188 | +--- |
| 189 | + |
| 190 | +**Last Updated:** 2025-10-22 |
| 191 | +**Memory Bank Version:** 1.0 |
| 192 | +**Project Version:** 0.8.1 |
0 commit comments