|
| 1 | +# Legacy OpenAdapt Codebase Freeze |
| 2 | + |
| 3 | +**Date**: January 2026 |
| 4 | +**Status**: Legacy Codebase Frozen |
| 5 | +**Last Version**: v0.46.0 |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## Decision Summary |
| 10 | + |
| 11 | +The monolithic OpenAdapt codebase in this repository has been **frozen** as of version 0.46.0. Active development has moved to a new **modular meta-package architecture** that provides better maintainability, faster iteration, and cleaner separation of concerns. |
| 12 | + |
| 13 | +**This codebase remains available for:** |
| 14 | +- Reference and historical purposes |
| 15 | +- Existing users who need to maintain current installations |
| 16 | +- Migration planning and compatibility testing |
| 17 | + |
| 18 | +**No new features will be added to this codebase.** |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +## Last Known Working Version |
| 23 | + |
| 24 | +| Property | Value | |
| 25 | +|----------|-------| |
| 26 | +| **Version** | 0.46.0 | |
| 27 | +| **PyPI Package** | `openadapt==0.46.0` | |
| 28 | +| **Python Support** | 3.10 - 3.11 | |
| 29 | +| **Release Date** | February 2025 | |
| 30 | +| **Repository** | https://github.com/OpenAdaptAI/OpenAdapt | |
| 31 | + |
| 32 | +**To install the legacy version:** |
| 33 | +```bash |
| 34 | +pip install openadapt==0.46.0 |
| 35 | +``` |
| 36 | + |
| 37 | +**Or clone and install from this repository:** |
| 38 | +```bash |
| 39 | +git clone https://github.com/OpenAdaptAI/OpenAdapt.git |
| 40 | +cd OpenAdapt |
| 41 | +pip install poetry |
| 42 | +poetry install |
| 43 | +``` |
| 44 | + |
| 45 | +--- |
| 46 | + |
| 47 | +## New Modular Architecture |
| 48 | + |
| 49 | +The new OpenAdapt ecosystem is split into focused, independently-versioned packages: |
| 50 | + |
| 51 | +| Package | Description | Installation | |
| 52 | +|---------|-------------|--------------| |
| 53 | +| **openadapt** | Meta-package (unified CLI + re-exports) | `pip install openadapt` (v1.0.0+) | |
| 54 | +| **openadapt-ml** | ML engine, training, inference | `pip install openadapt-ml` | |
| 55 | +| **openadapt-capture** | Event recording and storage | `pip install openadapt-capture` | |
| 56 | +| **openadapt-evals** | Benchmark evaluation infrastructure | `pip install openadapt-evals` | |
| 57 | +| **openadapt-viewer** | HTML visualization components | `pip install openadapt-viewer` | |
| 58 | +| **openadapt-grounding** | UI element localization (optional) | `pip install openadapt-grounding` | |
| 59 | +| **openadapt-retrieval** | Multimodal demo retrieval (optional) | `pip install openadapt-retrieval` | |
| 60 | + |
| 61 | +**Quick start with new packages:** |
| 62 | +```bash |
| 63 | +# Install everything |
| 64 | +pip install openadapt[all] |
| 65 | + |
| 66 | +# Or install what you need |
| 67 | +pip install openadapt-ml openadapt-capture |
| 68 | +``` |
| 69 | + |
| 70 | +--- |
| 71 | + |
| 72 | +## Migration Guide |
| 73 | + |
| 74 | +### For Library Users |
| 75 | + |
| 76 | +**Before (Legacy v0.46.0):** |
| 77 | +```python |
| 78 | +from openadapt.record import record |
| 79 | +from openadapt.replay import replay |
| 80 | +from openadapt.models import Recording, ActionEvent |
| 81 | +from openadapt.strategies.visual import VisualReplayStrategy |
| 82 | +``` |
| 83 | + |
| 84 | +**After (New Architecture v1.0.0+):** |
| 85 | +```python |
| 86 | +# Recording |
| 87 | +from openadapt import CaptureSession, Recorder |
| 88 | + |
| 89 | +# ML (training and inference) |
| 90 | +from openadapt import AgentPolicy |
| 91 | +from openadapt_ml.training import train_supervised |
| 92 | + |
| 93 | +# Evaluation |
| 94 | +from openadapt import ApiAgent, evaluate_agent_on_benchmark |
| 95 | + |
| 96 | +# Viewer |
| 97 | +from openadapt import PageBuilder |
| 98 | +``` |
| 99 | + |
| 100 | +### For Application Users (Desktop Tray App) |
| 101 | + |
| 102 | +The legacy PySide6-based tray application is **not included** in the new packages. Options: |
| 103 | + |
| 104 | +1. **Continue using legacy**: Pin to `openadapt==0.46.0` |
| 105 | +2. **Use CLI**: The new `openadapt` CLI provides all core functionality |
| 106 | +3. **Future**: A new cross-platform application is planned |
| 107 | + |
| 108 | +### For Contributors |
| 109 | + |
| 110 | +**Legacy development setup:** |
| 111 | +```bash |
| 112 | +git clone https://github.com/OpenAdaptAI/OpenAdapt |
| 113 | +cd OpenAdapt |
| 114 | +poetry install |
| 115 | +``` |
| 116 | + |
| 117 | +**New development setup:** |
| 118 | +```bash |
| 119 | +# Clone specific sub-package |
| 120 | +git clone https://github.com/OpenAdaptAI/openadapt-ml |
| 121 | +cd openadapt-ml |
| 122 | +uv sync # or pip install -e ".[dev]" |
| 123 | +``` |
| 124 | + |
| 125 | +### Data Migration |
| 126 | + |
| 127 | +**Database format changed:** |
| 128 | + |
| 129 | +| Legacy | New | |
| 130 | +|--------|-----| |
| 131 | +| SQLite database (`openadapt.db`) | JSON/Parquet captures | |
| 132 | +| `Recording` SQLAlchemy model | `Capture` Pydantic model | |
| 133 | +| `ActionEvent` with foreign keys | `ActionEvent` standalone | |
| 134 | + |
| 135 | +A migration script will be provided to convert legacy recordings to the new format. |
| 136 | + |
| 137 | +### CLI Changes |
| 138 | + |
| 139 | +| Legacy CLI | New CLI | |
| 140 | +|------------|---------| |
| 141 | +| `python -m openadapt.record "task"` | `openadapt capture start --name "task"` | |
| 142 | +| `python -m openadapt.replay visual` | `openadapt replay --strategy visual` | |
| 143 | +| `python -m openadapt.visualize` | `openadapt capture view <name>` | |
| 144 | + |
| 145 | +### Python Version |
| 146 | + |
| 147 | +| Legacy | New | |
| 148 | +|--------|-----| |
| 149 | +| Python 3.10 - 3.11 | Python 3.12+ | |
| 150 | + |
| 151 | +--- |
| 152 | + |
| 153 | +## Benefits of the New Architecture |
| 154 | + |
| 155 | +### 1. Faster Development Cycles |
| 156 | +- Each package has independent CI/CD |
| 157 | +- Changes to `openadapt-ml` don't require rebuilding `openadapt-capture` |
| 158 | +- Smaller test suites per package = faster feedback |
| 159 | + |
| 160 | +### 2. Cleaner Dependencies |
| 161 | +- Legacy had 80+ direct dependencies |
| 162 | +- New packages have minimal, focused dependencies |
| 163 | +- Optional heavy dependencies (grounding, retrieval) are truly optional |
| 164 | + |
| 165 | +### 3. Better Versioning |
| 166 | +- Semantic versioning per package |
| 167 | +- Breaking changes in ML don't force capture upgrades |
| 168 | +- Easier to pin specific versions |
| 169 | + |
| 170 | +### 4. Modern Python Support |
| 171 | +- Python 3.12+ with modern typing |
| 172 | +- Native async/await support |
| 173 | +- Better performance |
| 174 | + |
| 175 | +### 5. Easier Contribution |
| 176 | +- Contributors can focus on one package |
| 177 | +- Clear ownership and responsibility |
| 178 | +- Smaller codebases to understand |
| 179 | + |
| 180 | +### 6. Optional Features |
| 181 | +- Install only what you need |
| 182 | +- `openadapt[grounding]` for UI grounding |
| 183 | +- `openadapt[retrieval]` for demo retrieval |
| 184 | +- `openadapt[all]` for everything |
| 185 | + |
| 186 | +--- |
| 187 | + |
| 188 | +## Frequently Asked Questions |
| 189 | + |
| 190 | +### Q: Will the legacy package be removed from PyPI? |
| 191 | +**A:** No. `openadapt==0.46.0` will remain available indefinitely. New versions (1.0.0+) will be the meta-package. |
| 192 | + |
| 193 | +### Q: Can I still file issues against the legacy codebase? |
| 194 | +**A:** Critical security fixes will be considered. New features should be requested against the new packages. |
| 195 | + |
| 196 | +### Q: What about my existing recordings? |
| 197 | +**A:** A migration tool will be provided. Contact us on Discord if you need help migrating. |
| 198 | + |
| 199 | +### Q: Is the desktop tray app still supported? |
| 200 | +**A:** The legacy tray app works with `openadapt==0.46.0`. A new cross-platform app is planned for the new architecture. |
| 201 | + |
| 202 | +--- |
| 203 | + |
| 204 | +## Support |
| 205 | + |
| 206 | +- **Discord**: https://discord.gg/yF527cQbDG |
| 207 | +- **GitHub Issues**: https://github.com/OpenAdaptAI/OpenAdapt/issues (legacy) |
| 208 | +- **New Packages Issues**: See individual package repositories |
| 209 | + |
| 210 | +--- |
| 211 | + |
| 212 | +## Related Documents |
| 213 | + |
| 214 | +- [Legacy Transition Plan](https://github.com/OpenAdaptAI/openadapt-evals/blob/main/docs/research/legacy-transition-plan.md) |
| 215 | +- [New Architecture Design](https://github.com/OpenAdaptAI/openadapt-ml/blob/main/docs/new_openadapt_architecture.md) |
| 216 | +- [OpenAdapt Meta-Package](https://github.com/OpenAdaptAI/openadapt) (coming soon) |
| 217 | + |
| 218 | +--- |
| 219 | + |
| 220 | +*This document was created as part of the OpenAdapt modular architecture transition. The legacy codebase served the community well from 2023-2025 and its patterns inform the new design.* |
0 commit comments