[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-996":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":13,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":17,"compositeScore":18,"rankGlobal":8,"rankLanguage":8,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":8,"pushedAt":8,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":14,"starSnapshotCount":14,"syncStatus":13,"lastSyncTime":27,"discoverSource":28},996,"LazyEnv","ListerOvO1211\u002FLazyEnv","ListerOvO1211",null,"C++",471,30,428,2,0,4,28,6,4.47,"GNU General Public License v3.0",false,"main",true,[],"2026-06-12 02:00:21","# LazyEnv\n\n**English** | [中文](README_zh-CN.md)\n\n**Cross-platform, recoverable, zero-pollution questionnaire-style development environment configuration tool.**\n\nVersion: 0.2.0\n\n---\n\n## Overview\n\nLazyEnv is a Windows-native desktop application that guides developers through setting up their development environment via an interactive questionnaire interface. It leverages WebView2 for a modern Win11 Fluent Design UI while providing robust environment variable management with full snapshot and rollback capabilities.\n\n### Core Design Principles\n\n| Principle | Description |\n|-----------|-------------|\n| **Cross-platform** | Abstracted architecture with platform-specific backends; Windows native support via Win32 + WebView2 (P0) |\n| **Recoverable** | Full environment variable snapshot and restore system; automatic pre-install snapshots (P1) |\n| **Zero-pollution** | All changes are tracked and reversible; no hidden side effects on the host system |\n\n---\n\n## Architecture\n\n```\nLazyEnv\u002F\n|-- main.cpp                 \u002F\u002F WinMain entry, window creation, message dispatch\n|-- webview_host.cpp\u002Fh       \u002F\u002F WebView2 host management\n|-- installer.cpp\u002Fh          \u002F\u002F Package installation (winget), PATH management\n|-- rollback.cpp\u002Fh           \u002F\u002F Environment variable snapshot & rollback engine\n|-- resources\u002F\n|   |-- index.html           \u002F\u002F Questionnaire UI structure\n|   |-- style.css            \u002F\u002F Win11 Fluent Design styling\n|   |-- script.js            \u002F\u002F Frontend interaction logic\n|-- LazyEnv.rc               \u002F\u002F Icon and version information\n|-- CMakeLists.txt           \u002F\u002F Build configuration\n```\n\n### Communication Model\n\nThe application uses a bidirectional message bridge between the native C++ backend and the WebView2 frontend:\n\n- **Web to Native**: `window.chrome.webview.postMessage(JSON.stringify(obj))`\n- **Native to Web**: `ICoreWebView2::PostWebMessageAsString(json)`\n\nAll messages are JSON-encoded with an `action` field for routing.\n\n---\n\n## Features\n\n### Windows Native Support\n\n- Win32 window with WebView2 embedded browser\n- Dark theme matching Windows 11 system appearance\n- Minimum window size enforcement (800x600)\n- Centered window on launch\n\n### Environment Variable Management\n\n- Read\u002Fwrite environment variables via Windows Registry API\n- User-level and system-level variable support\n- Automatic PATH management for installed packages\n- `WM_SETTINGCHANGE` broadcast for immediate effect\n\n### Fault Tolerance & Recovery\n\n- Automatic snapshot before any installation\n- Manual snapshot creation with descriptions\n- Full environment restore from any snapshot\n- Snapshot storage in `%LOCALAPPDATA%\u002FLazyEnv\u002Fsnapshots\u002F` as JSON files\n- Snapshot listing, restore, and deletion via UI\n\n### Cross-platform Consistency Abstraction\n\n- Namespace-based module separation (`lazyenv::`)\n- Platform-agnostic interfaces (`Installer`, `RollbackManager`)\n- Backend can be swapped for Linux\u002FmacOS implementations\n- Frontend is fully platform-independent (HTML\u002FCSS\u002FJS)\n\n---\n\n## Package Catalog\n\nLazyEnv ships with a curated catalog of common development tools:\n\n| Category | Packages |\n|----------|----------|\n| Languages | Python 3.12, Node.js LTS, Rust, Go, Java JDK 21 |\n| Build Tools | CMake, Ninja, LLVM\u002FClang |\n| Version Control | Git, GitHub CLI |\n| Editors | VS Code, Neovim |\n| Containers | Docker Desktop |\n| Databases | PostgreSQL 16, Redis |\n| Utilities | jq, ripgrep, fd, fzf, WinSCP |\n\n---\n\n## Build Instructions\n\n### Prerequisites\n\n- Windows 10 version 1903+ or Windows 11\n- Visual Studio 2022 with C++ desktop development workload\n- CMake 3.24+\n- Microsoft Edge WebView2 Runtime (usually pre-installed on Windows 10\u002F11)\n\n### Build Steps\n\n```powershell\n# Clone or navigate to the project directory\ncd E:\\Dev\\LazyEnv\n\n# Configure (CMake will auto-download WebView2 SDK and WIL)\ncmake -B build -G \"Visual Studio 17 2022\" -A x64\n\n# Build\ncmake --build build --config Release\n\n# The executable will be at build\u002FRelease\u002FLazyEnv.exe\n# Resources are automatically copied to build\u002FRelease\u002Fresources\u002F\n```\n\n### Icon\n\nThe resource file references `resources\u002Flazyenv.ico`. You can generate one or provide your own 256x256 ICO file. To build without an icon, comment out the `IDI_APPICON ICON` line in `LazyEnv.rc`.\n\n---\n\n## Usage\n\n1. **Launch** `LazyEnv.exe`\n2. **System Check** - Verifies OS, WebView2 runtime, and winget availability\n3. **Select Packages** - Choose development tools from the categorized catalog\n4. **Install** - Packages are installed via winget with real-time progress; a snapshot is created automatically before installation begins\n5. **Recovery** - View, create, restore, or delete environment snapshots\n6. **Summary** - Review all changes made during the session\n\n---\n\n## Data Storage\n\n| Item | Location |\n|------|----------|\n| Snapshots | `%LOCALAPPDATA%\u002FLazyEnv\u002Fsnapshots\u002F*.json` |\n| WebView2 cache | `%LOCALAPPDATA%\u002FLazyEnv\u002FWebView2\u002F` |\n\nNo other files are created or modified outside of these directories and the Windows Registry environment variable keys.\n\n---\n\n## License\n\nMIT License\n","LazyEnv 是一款跨平台、可恢复且零污染的问卷式开发环境配置工具。它通过交互式问卷界面引导开发者设置开发环境，利用WebView2技术提供现代化的Win11 Fluent Design UI，并支持强大的环境变量管理功能，包括全量快照和回滚能力。核心设计原则包括跨平台抽象架构、完全可恢复性以及对主机系统的零污染。该工具特别适合需要频繁切换或重新配置开发环境的场景，如多项目并行开发、团队协作等。其Windows原生支持确保了在Windows系统上的最佳用户体验，同时其模块化设计也为未来扩展至其他操作系统奠定了基础。","2026-06-11 02:40:47","CREATED_QUERY"]