- Split the frontend into atlas/ and review/ modules with a shared api client,
and add Prettier, ESLint and node tests for graph layout and data helpers
- Lay out expanded dimensions as separate clusters around the root
- Let the force simulation cool slowly after a node drag instead of stopping abruptly
- Reopening the collapsed root resets the map to its initial layout
- Use one loading screen style for the page and canvas loading states
- Clear stale errors when retrying fact history
- Rebuild weclone/web/dist
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Implemented SourceChatPanel component for displaying chat records with UI enhancements.
- Added source_chat.py to handle chat sample extraction from persisted memory.
- Introduced new CSS styles for improved layout and responsiveness.
- Updated JavaScript bundle with new features and optimizations.
Integrate suffixed encrypted storage across extraction, review, training, and inference. Add shared-password web authentication with two-hour sessions, private request logging, and an isolated profile-building pipeline.
Fix encrypted dataset discovery at training entrypoints and duplicate CSV imports. Add synthetic storage, authentication, and log checks; update documentation and frontend assets.
- Added default values for batch size, max tokens, and timeout in distill_profile.py.
- Refactored required configuration functions to support section-specific error messages.
- Introduced positive and optional positive integer validation functions for configuration.
- Updated resolve_llm_args to utilize new configuration validation functions.
- Modified organize_memories.py to load agent distill configuration and handle missing model gracefully.
- Improved stage 2 output file management in make_dataset_stage2.py, ensuring proper validation against manifest files.
- Added new web assets including HTML, CSS, and JS files for profile review interface.
- Set up default static directory for serving web assets in profile_review.py.
- Deleted the obsolete tokenizer configuration file `tokenizer_config.json` from the deepseek_v3 tokenizer resources.
- Updated the `resolve_tokenizer_file` function in `token_counter.py` to raise a FileNotFoundError if the tokenizer file is not specified, improving error handling.
- Modified the help message for the `--tokenizer-file` argument to clarify that it can be set via the environment variable `WECLONE_TOKENIZER_FILE`.
- Implemented a new authentication system in `auth.py` to manage user sessions and password security.
- Created an `AuthStore` class to handle password hashing, session management, and login/logout functionality.
- Added API endpoints for login, logout, and session validation in the FastAPI application.
- Developed a React context for authentication in `Auth.tsx`, including a login form and logout button.
- Introduced tests for private routes and session management in `test_web_auth.py`.
- Added CSS styles for the authentication page in `index-DOIy3AqG.css`.
- Included a new JavaScript file for the web application in `index-DwlWkAhO.js`.
- Implemented `organize_memories.py` to manage and organize extracted profile/event memories by dimension.
- Introduced new schemas and rules for attribute hierarchy and preference attributes in `memory_organization.py`.
- Created `profile_hierarchy.py` for generating a hierarchical structure of attributes for better browsing.
- Enhanced classification and summarization processes to support new dimensions and attributes.
- Introduced `distill_event.py` for processing chat records and extracting events related to user interactions.
- Implemented functions for handling event payloads, rendering event chats, and managing state during processing.
- Enhanced `chat_distill.py` with a detailed prompt for extracting surface and inferred events from chat records, focusing on relevant information and event types.
- Updated logging and progress tracking for improved user feedback during event processing.
- Introduced `agent_distill_args` in `settings.template.jsonc` to specify LLM backend for agent distillation.
- Added `AgentDistillArgs` class in `config_models.py` to support new configuration parameters.
- Enhanced `CodexExecClient` in `llm_client.py` to manage request directories and improve command execution handling.
- Created `distill_state.py` for managing state extraction and processing logic related to agent distillation.
- Removed `milvus-lite` and `pymilvus` from dependencies in `pyproject.toml`.
- Added `package-data` configuration for including tokenizer resources in the `weclone` package.
- Introduced new tokenizer configuration files in `weclone/resources/tokenizers/deepseek_v3`.
- Implemented a token counting utility in `token_counter.py` to facilitate text tokenization and counting.
- Added `milvus-lite` and `pymilvus` to project dependencies in `pyproject.toml`.
- Introduced `CodexExecArgs` and `EmbeddingServiceArgs` classes in `config_models.py` to support new execution and embedding service configurations.
- Updated `.gitignore` to exclude the newly added `AGENTS.md` file.
- Updated `distill.py` to enhance state extraction functions, introducing required configuration validation for model parameters.
- Refactored prompt definitions in `chat_distill.py`, replacing the previous state extraction prompt with a more structured template and adding a section for current state extraction.
- Improved memory filtering logic to better handle current state payloads and ensure relevant information is retained for future conversations.
- Updated subproject commit to reflect changes in the repository state.
- Introduced `__init__.py` for agent data construction utilities.
- Added `distill.py` containing functions for processing chat data, managing state, and saving JSON files.
- Created `chat_distill.py` with a detailed prompt for extracting memory states from chat records, focusing on various types of information such as stable facts, preferences, experiences, goals, and current states.
- Modified .gitignore to include all agent files in the dataset directory.
- Added a `sandbox` parameter to the `build_llm_client` function for improved client configuration.
- Introduced helper functions to generate chat IDs and assign group IDs to items in dataset processing, enhancing data organization.
- Added support for OpenRouter proxy configuration in the OnlineLLM class.
- Implemented a retry mechanism for OpenAI API calls with exponential backoff and jitter.
- Updated chat method to handle optional parameters for temperature and top_p.
- Improved error handling and logging for API call failures.
- Cleaned up unused code and comments for better readability.
- Introduced `chat_talker` and `partner_remarks` attributes in DataProcessor to improve chat context handling.
- Refactored `load_file` method to streamline user data loading and relation management.
- Updated subproject commit to indicate a dirty state.
- Removed the `create_new_adapter` field from `TrainSftArgs` class in `config_models.py` to streamline training configuration.
- Added `train_pt` command to continue pre-training using prepared text datasets.
- Introduced `TrainPtArgs` class for pre-training parameters, extending `TrainSftArgs`.
Address Sourcery review feedback - use client.base_url instead of
hardcoding http://127.0.0.1:8005 so the error message stays in sync
if the base URL configuration changes.
Add _check_api_server() that probes GET /v1/models before the test loop
starts. When the server is not running, the user now gets a clear error
message with the exact command to start it instead of a cryptic
connection-refused traceback.
Co-Authored-By: Octopus <liyuan851277048@icloud.com>
Per review feedback (#212): the previous `Optional[str]` accepted any
string, deferring validation until runtime. Switch to
`Optional[Literal["auto", "float16", "bfloat16", "float32", "half", "bf16"]]`
so Pydantic rejects invalid values up-front (matching vLLM CLI's accepted
`--dtype` choices, including the `half` / `bf16` aliases).
Also expand the field description to document the supported values.