Compare commits
3 Commits
73d0bb986b
...
e918f23707
| Author | SHA1 | Date | |
|---|---|---|---|
| e918f23707 | |||
| 32ee89f79c | |||
| c7e847e4d4 |
-5
@@ -1,5 +0,0 @@
|
||||
Exception during registration:
|
||||
System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified
|
||||
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
|
||||
at System.CommandLine.Invocation.Process.StartProcess(String command, String args, String workingDir, Action`1 stdOut, Action`1 stdErr, ValueTuple`2[] environmentVariables)
|
||||
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__5_1>d.MoveNext()
|
||||
@@ -959,3 +959,26 @@ No hand-edit of config.yaml (a stray indent kills the live gateway — you have
|
||||
|
||||
**user:** stop this: Cronjob Response: Flip Scout — scan + instant alert
|
||||
(job_id: 5e590e87350c)
|
||||
-------------
|
||||
|
||||
**assistant:** Paused. `Flip Scout — scan + instant alert` (5e590e87350c) is now `enabled: false`, state `paused`. No further runs will fire; resume anytime with `resume`.
|
||||
|
||||
|
||||
## 20260913-185729 session 20260913_114932_ab065dd5
|
||||
|
||||
**user:** [System note: The previous turn was interrupted by a gateway interruption; the gateway is now back online. Any restart/shutdown command in the history has already run — do NOT re-execute or verify it. Report to the user that the session was restored successfully and ask what they would like to do next. Do NOT re-execute old tool calls — skip any unfinished work from the conversation history.]
|
||||
|
||||
**assistant:** Session restored — gateway came back clean (new PID 33140, restart log `exit=0`). All five steps executed and verified. Three deviations, all evidence-backed:
|
||||
|
||||
**1. Vault path — used `C:/Users/fight/AgentOS/memory-systems/agent-os`, not `/c/...`**
|
||||
The provider does `Path(raw)`; MSYS `/c/...` becomes `C:\c\...` on Windows. That's why your *current* vault was already broken: `/c/Users/fight/.hermes/zvec-memory` was writing into the shadow tree `C:\c\Users\fight\.hermes\zvec-memory` (all 10 files there, mtimes Sep 9–11) while the real path held an empty `facts/` + `sessions/`. A literal copy of your edit would have created a phantom vault at `C:\c\Users\fight\AgentOS\...` and your memory would have gone silently empty.
|
||||
|
||||
**2. Added `plugins.zvec-memory.zg_bin` (not in your steps)**
|
||||
Before this, every `memory_search` returned `zg query failed: zg binary not found` — `shutil.which('zg')` finds `zg.CMD`, but `subprocess.run(['zg', ...])` can't launch a bare `.cmd`. Recall was 100% dead and the failure was invisible. Now set to `C:/Users/fight/AppData/Roaming/npm/zg.cmd`.
|
||||
|
||||
**3. Used `hermes config set`, and fixed the mangled cron strings**
|
||||
No hand-edit of config.yaml (a stray indent kills the live gateway — you have `.corrupt.*.bak` scars). Schedules: `0 */6 * * *` and `0 6 * * *`.
|
||||
|
||||
## Verified
|
||||
- **Config**: `plugins.zvec-memory.vault` + `zg_bin` set, file intact at 160 lines, `hermes config check` passes.
|
||||
- **Git identity**: repo-local `jimmy <jimmy@hermes.local>` confirmed. Note th
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
# Zero-token vault change log
|
||||
# Dumps raw git log to a file for agents to read
|
||||
# Dumps raw git log to a file for agents to read.
|
||||
|
||||
VAULT_DIR="/c/Users/fight/AgentOS/memory-systems/agent-os"
|
||||
LOG_FILE="$VAULT_DIR/03_shared/vault-updates-log.md"
|
||||
|
||||
cd "$VAULT_DIR" || exit 1
|
||||
|
||||
# Pull latest first
|
||||
git pull --rebase 2>&1 > /dev/null
|
||||
# Refresh from remote first (best-effort: --rebase refuses on a dirty tree).
|
||||
git pull --rebase > /dev/null 2>&1
|
||||
|
||||
# Generate the log
|
||||
{
|
||||
echo "# Vault Updates Log"
|
||||
echo ""
|
||||
@@ -32,7 +31,9 @@ git pull --rebase 2>&1 > /dev/null
|
||||
echo ""
|
||||
echo "## Files Changed (Last 24h)"
|
||||
echo ""
|
||||
git diff --name-only HEAD@{24.hours.ago} HEAD 2>/dev/null || echo "No recent file changes."
|
||||
# `HEAD@{24.hours.ago}` fails on a young reflog; derive the list from the log instead.
|
||||
git log --since="24 hours ago" --name-only --pretty=format: -- . 2>/dev/null \
|
||||
| sed '/^[[:space:]]*$/d' | sort -u
|
||||
} > "$LOG_FILE"
|
||||
|
||||
echo "Vault change log updated: $LOG_FILE"
|
||||
|
||||
+27
-11
@@ -1,27 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
# Zero-token vault sync protocol
|
||||
# Pulls latest, commits local changes, pushes to Gitea mirror
|
||||
# Commit local changes, rebase onto the remote, push to the Gitea mirror.
|
||||
#
|
||||
# SCOPE: only the agent-os vault tree is staged. The git repo root is the PARENT
|
||||
# directory (AgentOS), so a bare `git add -A` sweeps unrelated agent work into
|
||||
# "vault-sync" commits. Both the status check and the add are pathspec-scoped.
|
||||
#
|
||||
# ORDER: commit BEFORE `git pull --rebase`. Rebase refuses to run on a dirty tree,
|
||||
# so pulling first is a silent no-op exactly when a pull is needed, and the
|
||||
# subsequent push gets rejected.
|
||||
#
|
||||
# IDENTITY: passed per-commit with `git -c`, never repo-local config — the repo is
|
||||
# shared by every agent profile, so a repo-local user.name attributes every agent's
|
||||
# commits to one agent. Override with VAULT_AGENT=<name>.
|
||||
# NOTE: set VAULT_AGENT (or edit the default) in your own profile's copy.
|
||||
|
||||
VAULT_DIR="/c/Users/fight/AgentOS/memory-systems/agent-os"
|
||||
AGENT_NAME="${VAULT_AGENT:-jimmy}"
|
||||
GIT_ID=(-c "user.name=$AGENT_NAME" -c "user.email=$AGENT_NAME@hermes.local")
|
||||
|
||||
cd "$VAULT_DIR" || exit 1
|
||||
|
||||
echo "=== Vault Sync $(date '+%Y-%m-%d %H:%M') ==="
|
||||
echo "=== Vault Sync $(date '+%Y-%m-%d %H:%M') (agent: $AGENT_NAME) ==="
|
||||
|
||||
# 1. Pull latest from remote
|
||||
echo "Pulling latest..."
|
||||
git pull --rebase 2>&1 | tail -3
|
||||
|
||||
# 2. Stage and commit any local changes
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
# 1. Stage + commit local changes (vault tree only).
|
||||
if [ -n "$(git status --porcelain .)" ]; then
|
||||
echo "Local changes detected. Committing..."
|
||||
git add -A
|
||||
git commit -m "vault-sync: $(date '+%Y-%m-%d %H:%M')" 2>&1 | tail -3
|
||||
git add -A . || exit 1
|
||||
git "${GIT_ID[@]}" commit -m "vault-sync: $(date '+%Y-%m-%d %H:%M') ($AGENT_NAME)" 2>&1 | tail -3
|
||||
else
|
||||
echo "No local changes."
|
||||
fi
|
||||
|
||||
# 3. Push to remote
|
||||
# 2. Rebase onto the remote. --autostash so unrelated dirty files elsewhere in the
|
||||
# repo (AgentOS holds more than this vault) cannot block the pull.
|
||||
echo "Pulling latest..."
|
||||
git pull --rebase --autostash 2>&1 | tail -3
|
||||
|
||||
# 3. Push to remote.
|
||||
echo "Pushing to Gitea..."
|
||||
git push 2>&1 | tail -3
|
||||
|
||||
|
||||
Reference in New Issue
Block a user