← QuarryFi R&D TrackerCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to QuarryFi R&D Tracker
Snapshot Sep 30, 2026 · 23:14 UTC · version 0.4.7
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "quarryfi-update",
"description": "Refresh the local QuarryFi plugin install from GitHub",
"included_files": [],
"skill_md_contents": "---\nname: quarryfi-update\ndescription: Refresh the local QuarryFi plugin install from GitHub\n---\n\nRefresh the local QuarryFi time tracking plugin install by pulling the latest changes from GitHub into the folder Codex is currently using.\n\n## Safety invariant\n\nThe local plugin checkout must not change during ordinary Codex use. Runtime hooks, status checks, and background heartbeats may write only to `~/.quarryfi/`. This update skill is the only sanctioned workflow that changes files under the plugin directory, and it should make that explicit in its response.\n\nKeep three locations distinct:\n\n- Upstream development repo: where maintainers author, commit, and push product changes to GitHub.\n- Local install source: the clone referenced by the Codex marketplace; this is what the updater may fast-forward.\n- Codex runtime cache: `~/.codex/plugins/cache/...`; Codex owns this copy. Never run `git pull`, `git reset`, or repair commands inside the cache.\n\n## What to do\n\n1. Find the plugin installation directory. Check these locations in order:\n - `~/plugins/quarryfi-time-tracker` (home-local install)\n - Marketplace source paths in `~/.agents/plugins/marketplace.json` and `<repo>/.agents/plugins/marketplace.json`, resolving relative `source.path` entries from the marketplace file's parent directory\n - Search for a directory containing `.codex-plugin/plugin.json` with `\"name\": \"quarryfi-time-tracker\"` under `~/plugins/`, `~/.codex/plugins/` excluding `~/.codex/plugins/cache/`, or the current repo's `plugins/` directory\n - If the only discovered copy is under `~/.codex/plugins/cache/`, do not update it. Tell the user:\n ```\n Found only Codex's runtime cache copy of quarryfi-time-tracker.\n The updater must run against the marketplace source clone, not the cache.\n Reinstall or restore the local source clone, then run the update again.\n ```\n\n2. If the plugin directory is not found, tell the user:\n ```\n Could not find the quarryfi-time-tracker plugin.\n Install it first: https://github.com/quarryFi/codex-plugin#install\n ```\n\n3. Check for updates:\n ```bash\n cd <plugin-dir>\n git fetch origin main 2>/dev/null\n LOCAL=$(git rev-parse HEAD)\n REMOTE=$(git rev-parse origin/main)\n STATUS=$(git status --short)\n ```\n\n4. Before pulling, protect against dirty or half-updated checkouts:\n - If `$STATUS` is non-empty and `git diff --quiet origin/main` succeeds, the files on disk already match the remote but git metadata is stale. Tell the user:\n ```\n QuarryFi plugin files already match GitHub, but the local git branch is stale.\n This indicates an out-of-band file sync or interrupted update.\n Repairing git metadata only; file contents will not change.\n ```\n Then run:\n ```bash\n git reset --mixed origin/main\n ```\n After that, recompute `LOCAL`, `REMOTE`, and `STATUS`.\n - If `$STATUS` is non-empty and the worktree does not match `origin/main`, do not pull and do not stash automatically. Show `git status --short` and tell the user:\n ```\n QuarryFi plugin update blocked because the plugin checkout has local edits.\n Review or stash those edits, then run the update again.\n ```\n If they want to preserve those edits, suggest:\n ```bash\n cd <plugin-dir>\n git stash push -m quarryfi-plugin-local-edits\n git pull --ff-only origin main\n git stash pop\n ```\n\n5. If `$LOCAL` equals `$REMOTE` and `$STATUS` is empty, tell the user:\n ```\n QuarryFi plugin is already up to date (version X.Y.Z).\n ```\n Read the version from `.codex-plugin/plugin.json`.\n\n6. If there are updates available, show what's changed:\n ```bash\n git log --oneline HEAD..origin/main\n ```\n\n7. Pull the update with fast-forward only:\n ```bash\n git pull --ff-only origin main\n ```\n\n8. Read the new version from `.codex-plugin/plugin.json` and show:\n ```\n ✓ QuarryFi plugin updated to vX.Y.Z\n\n Restart the Codex App to load the new version.\n ```\n\n9. Be explicit that this updates the local plugin folder on disk. The current Codex session may still be running the previously cached copy until restart.\n\n10. Suggest verifying with `quarryfi-status` after restart so the user can confirm:\n - the installed version\n - the latest local audit timestamp\n - whether a hook has fired in the new session\n\n11. If `git pull --ff-only` fails, do not try a merge. Report the failure and show the user the current `git status --short`.\n\n## Error handling\n\n- If the directory exists but is not a git repo, tell the user to re-clone.\n- If there's no network, say the update check failed and to try again later.\n- Never delete or overwrite the user's `~/.quarryfi/config.json` — that's separate from the plugin code.\n- Be explicit that this updates the local plugin folder on disk; the current Codex session still needs a restart before the new version is active.\n"
}SHA-256: 55643f7c3ccd467b22ddbe7bf89af3995dfd4f349cd0c5e6c0a459677e5c836d