v2.0.1
This commit is contained in:
parent
d33db9fff8
commit
bd3497b1c0
11 changed files with 37 additions and 41 deletions
|
|
@ -3,4 +3,4 @@ from __future__ import annotations
|
|||
from pathlib import Path
|
||||
|
||||
VIBE_ROOT = Path(__file__).parent
|
||||
__version__ = "2.0.0"
|
||||
__version__ = "2.0.1"
|
||||
|
|
|
|||
|
|
@ -49,14 +49,11 @@ class FileSystemUpdateCacheRepository(UpdateCacheRepository):
|
|||
|
||||
async def set(self, update_cache: UpdateCache) -> None:
|
||||
try:
|
||||
payload = json.dumps(
|
||||
{
|
||||
"latest_version": update_cache.latest_version,
|
||||
"stored_at_timestamp": update_cache.stored_at_timestamp,
|
||||
"seen_whats_new_version": update_cache.seen_whats_new_version,
|
||||
},
|
||||
ensure_ascii=False,
|
||||
)
|
||||
payload = json.dumps({
|
||||
"latest_version": update_cache.latest_version,
|
||||
"stored_at_timestamp": update_cache.stored_at_timestamp,
|
||||
"seen_whats_new_version": update_cache.seen_whats_new_version,
|
||||
})
|
||||
await asyncio.to_thread(self._cache_file.write_text, payload)
|
||||
except OSError:
|
||||
return None
|
||||
|
|
|
|||
|
|
@ -22,12 +22,12 @@ class SessionLoader:
|
|||
return False
|
||||
|
||||
try:
|
||||
with open(metadata_path) as f:
|
||||
with open(metadata_path, encoding="utf-8", errors="ignore") as f:
|
||||
metadata = json.load(f)
|
||||
if not isinstance(metadata, dict):
|
||||
return False
|
||||
|
||||
with open(messages_path) as f:
|
||||
with open(messages_path, encoding="utf-8", errors="ignore") as f:
|
||||
lines = f.readlines()
|
||||
if not lines:
|
||||
return False
|
||||
|
|
@ -87,7 +87,7 @@ class SessionLoader:
|
|||
messages_filepath = filepath / MESSAGES_FILENAME
|
||||
|
||||
try:
|
||||
with messages_filepath.open("r", encoding="utf-8") as f:
|
||||
with messages_filepath.open("r", encoding="utf-8", errors="ignore") as f:
|
||||
content = f.readlines()
|
||||
except Exception as e:
|
||||
raise ValueError(
|
||||
|
|
@ -117,7 +117,9 @@ class SessionLoader:
|
|||
|
||||
if metadata_filepath.exists():
|
||||
try:
|
||||
with metadata_filepath.open("r", encoding="utf-8") as f:
|
||||
with metadata_filepath.open(
|
||||
"r", encoding="utf-8", errors="ignore"
|
||||
) as f:
|
||||
metadata = json.load(f)
|
||||
except json.JSONDecodeError as e:
|
||||
raise ValueError(
|
||||
|
|
|
|||
|
|
@ -182,7 +182,9 @@ class SessionLogger:
|
|||
if not messages_filepath.exists():
|
||||
messages_filepath.touch()
|
||||
|
||||
async with await AsyncPath(messages_filepath).open("a") as f:
|
||||
async with await AsyncPath(messages_filepath).open(
|
||||
"a", encoding="utf-8"
|
||||
) as f:
|
||||
for message in messages:
|
||||
await f.write(json.dumps(message, ensure_ascii=False) + "\n")
|
||||
await f.flush()
|
||||
|
|
@ -217,7 +219,9 @@ class SessionLogger:
|
|||
# Read old metadata and get total_messages
|
||||
try:
|
||||
if self.metadata_filepath.exists():
|
||||
async with await AsyncPath(self.metadata_filepath).open() as f:
|
||||
async with await AsyncPath(self.metadata_filepath).open(
|
||||
encoding="utf-8", errors="ignore"
|
||||
) as f:
|
||||
old_metadata = json.loads(await f.read())
|
||||
old_total_messages = old_metadata["total_messages"]
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
# What's New in 2.0.0
|
||||
|
||||
- **Subagents**: The agent can now delegate tasks to specialized sub-agents for more complex workflows.
|
||||
- **Interactive Questions**: The agent can now ask you clarifying questions as it works.
|
||||
- **Slash Commands**: You can now define your own custom slash commands through skills.
|
||||
- **Auto-Update**: Vibe will now keep itself up to date automatically. Disable with `enable_auto_update = false` in `config.toml`.
|
||||
- **MCP Servers**: Configurations now support environment variables and custom timeouts.
|
||||
- **Agents System**: Modes have been replaced by a more flexible agents system.
|
||||
|
||||
### ⚠️ Breaking Changes
|
||||
- Custom modes must be migrated to the new agent format.
|
||||
- `workdir` setting in `config.toml` is no longer supported.
|
||||
- `instructions.md` files are no longer supported.
|
||||
- Heuristic regex matching is removed. To use a regex in `enabled_tools`, `disabled_tools`, `enabled_skills`, or `disabled_skills`, prefix it with `re:` (e.g., `re:serena.*`).
|
||||
Loading…
Add table
Add a link
Reference in a new issue