Spaces:
Configuration error
Configuration error
Commit History
-
refactor: consolidate route auth + service accessors (closes #34)
Delete the per-route _check_auth / _get_kv / _get_search_service / _get_observation_store copies from observations, mcp, search, migration, memories, graph, and health. Every protected handler now uses the existing routes/auth.py:require_auth decorator; service accessors move to a single routes/_deps.py that reads from Flask extensions with an app-module-globals fallback for test resets. Also registers kv on flask_app.extensions for symmetry with observation_store and search_service. New test tests/test_routes_auth_matrix.py walks every registered HTTP rule and asserts the auth semantics (401 without token, 2xx with token, 2xx in no-secret mode, 401 on invalid token). Skips WebSocket routes per the ticket. Prep for #35 (legacy.py file-split) — removes the auth-plumbing churn that would otherwise conflict across every route file.fce12d3 -
docs: add ADR-0001 — keep legacy.py as re-export shim
Records the decision to file-split legacy.py rather than extract to injected stores. Prevents future architecture reviews from re-suggesting the full extraction. Referenced by spec #33 and tickets #34, #35.f672143 -
refactor: delete agentcache/cache/* shim layer (closes #29, #30, #31, #32)
Removes the entire src/agentcache/cache/ subpackage — an empty seam that only re-exported functions from legacy.py. No in-repo caller imports from agentcache.cache.*, and the top-level public API (agentcache.remember, agentcache.health_check, agentcache.folder_graph_build) is sourced from legacy directly, so nothing breaks. Verified: - from agentcache.app import create_app; create_app() succeeds - import agentcache; agentcache.remember/health_check/folder_graph_build resolve - import agentcache.cache raises ModuleNotFoundError - grep for "agentcache.cache" returns zero hits - pytest tests/ passes (test_search_service::test_http_search_routes_end_to_end was already failing on main, unrelated to this change) Closes #29 Closes #30 Closes #31 Closes #323cde7ea
-
Raplh 2 in process
ac98b25 -
feat: add core package (ObservationStore, SearchService, KV) and auth middleware Introduces the production modules that tickets #26 and #27 test: - src/agentcache/core/__init__.py — package exports - src/agentcache/core/kv_scopes.py — KV scope key registry - src/agentcache/core/search_service.py — SearchService + IndexPersistence - src/agentcache/routes/auth.py — verify_token + require_auth decorator All 18 tests pass (test_auth, test_observation_store, test_search_service). Closes #26, closes #27
5586336 -
fix: use relative paths in AGENTS.md agent skills links Replace absolute file:// URLs (machine-specific) with relative paths so the links work across clones and in GitHub's rendered markdown view. Closes: no direct issue — follow-up to /setup-matt-pocock-skills
dd5857f -
test: hardening test suite, adding auth tests, and shared conftest fixtures
a6e11a5 -
feat: setup agent skills configuration and fix route blueprint imports
a0d5274 -
Intial Files
9604d35
-
Added new docs
5cd3cca
-
test: add SQL injection and path traversal unit tests, and integrate Bandit CI security scanning
1846fdf -
test: add SQL injection and path traversal unit tests, and integrate Bandit CI security scanning
98c3939 -
feat(cli): implement agentcache context bootstrapper command
4a14717
-
feat(memory): implement folder-based observation auto-forgetting and TTL
95568d8 -
feat: Maintaining database concurrency
016d065 -
fix: Added prod level migrations
ba35a6d -
fix: Readme ref links are fixed
7c69c77 -
build: update build-backend to PEP 517 build_meta
e0e2e6c
-
Initial Git Push
CI CD Tests Included67c1aa5
-
feat: implement /auth.md agent onboarding route and add ws broadcast improvements
c704030 -
feat: migrate agentmemory to agentcache namespace, endpoints, and tools
12a6c9a
-
feat: dedup observations, fix dashboard buttons, add per-obs delete
- Add SHA-256 content fingerprint dedup to folder_observe() — identical text from the same (folder, agent) pair returns existing obs ID without writing a duplicate. Per-pair threading.Lock prevents TOCTOU races. - Add dedup_folder_observations() to clean up existing duplicates across one or all (folder, agent) pairs, rebuilding the dedup index after. - Add POST /agentmemory/folder/dedup REST endpoint (auth-gated). - Add memory_dedup MCP tool (schema + dispatch). - Viewer: fix Back/Delete-folder buttons to use data-action delegation instead of fragile inline onclick with escaped string args. - Viewer: add per-observation Delete button on each card in folder detail. - Viewer: add Select-all checkbox + bulk Delete-selected with single POST /forget call; cards removed from DOM without reload. - Viewer: add one-click Dedup button in folder detail toolbar. - Viewer: fix Tools tab TypeError — raw fetch() replaces apiFetchRaw() so .text() is called on the Response object, n…dc238fd -
feat: obs lookup index, startup backfill, CORS wildcards, sync state in SQLite
- Add global obs_id->folderPath/agentId coordinate lookup index (KV.obs_lookup) so folder_search hydrates candidates via O(1) point lookups instead of O(N) scans - Add backfill_obs_lookup_if_needed() on startup to populate missing lookup entries - Add verify_index_sync_on_boot() in workers.py to detect and fix stale search index after crash/abrupt shutdown - triggers background rebuild if counts diverge - Print security warning on boot when AGENTMEMORY_SECRET is unset - Update CORS default origins to allow vscode-webview://* and chrome-extension://* prefix matching so IDE extensions connect without CORS errors - Persist sync_state in SQLite sync_state_metadata table instead of local .sync_state JSON file, ensuring sync state survives Space restarts - Add tests/test_obs_lookup.py covering lookup write, delete propagation, backfill, and desync detection (all 231 tests pass)bbea853 -
fix: prevent double-import of app.py by registering app namespace in sys.modules
9aca16b -
fix: remove unclosed and unused renderDashboard function declaration that broke JS parsing
ef46d54 -
fix: wrap localStorage access for iframe environments and resolve footer mojibake
7e4fe2c -
fix: resolve stuck command palette default display and UTF-8 mojibake
df8c7d5 -
fix: Hugging Face sync, routing, dashboard, and agent isolation bugs
12b5d50 -
fix: rewrite /observe handler - unified compat path + fix undefined body in except
3edc290 -
fix: CORS for HF Spaces + OPTIONS preflight + observe error logging
0697a1f -
fix: compat shim for legacy observe callers - map sessionId/cwd to folderPath/agentId
522bc87 -
fix: CORS for HF Spaces + OPTIONS preflight + observe error logging
acea43f -
fix: CORS for HuggingFace Spaces + OPTIONS preflight + auth banner visibility
a00a0e3 -
fix: add legacy API compat shims + fix /observe auto-routing
- POST /agentmemory/session/start -> 200 compat shim (was 404) - POST /agentmemory/session/end -> 200 compat shim - GET /agentmemory/observations?sessionId -> compat shim reading legacy KV - POST /agentmemory/observe: auto-detect folderPath+agentId payload and route to folder_observe() instead of failing with 400 - Fix viewer: loadFolders circular reference via IIFE capture - Fix viewer: broken if(false) block that swallowed page initf888ff4 -
fix(viewer): fix blank page on load and loadFolders circular reference
b27f86d -
fix(viewer): sync dashboard to folder-based backend
- Remove 10 tabs (Dashboard, Sessions, Lessons, Actions, Crystals, Audit, Activity, Profile, Replay, Personal) that called non-existent endpoints - Keep only the 5 tabs backed by real API routes: Folders, Memories, Graph, Timeline, Tools - Remove renderDashboard(), loadActivity(), loadSessions(), renderSessions(), loadLessons(), renderLessons(), loadActions(), renderActions(), loadCrystals(), renderCrystals(), loadProfile(), renderProfile(), loadPersonal(), renderPersonal(), loadReplay(), renderReplay() and all associated dead state (dashboard/sessions/activity/crystals/etc) - Remove 4 orphaned view-* div containers that had no tab buttons - Fix apiFetchRaw() to use REST base URL for correct cross-origin support - Remove duplicate apiPost() declaration - Fix startPolling() to only refresh tabs with real endpoints - Fix routeWsMessage() to remove dead dashboard/activity branches - Fix maybeShowOnboarding() flag key lookups (use real embeddingProvider field) - Fix renderFlagB…9828fcf
-
feat: upscale & UX overhaul — blueprint split, debounce, tests, viewer enhancements, DX improvements
Track A — Backend Structure: - Split app.py into 7 Flask blueprints (src/routes/) - Create src/memory/ package and src/storage/ package - Per-thread SQLite connections, WAL checkpoint, db.stats() - IndexPersistence debounce queue with threading.Timer + dirty flags - Workers: SIGTERM/SIGINT graceful shutdown Track B — Viewer UX: - Command palette (Ctrl+K/Cmd+K) with fuzzy search - D3 v7 force-directed graph replacing canvas - VirtualList for Timeline/Folders - Onboarding card for empty state - MCP Tool Tester tab - Tab keyboard navigation (ARIA roles, arrow keys) - Skeleton loading states (@keyframes shimmer) Track C — Reliability & Testing: - test_search.py, test_remember.py, test_context.py, test_debounce.py - test_properties.py (8 Hypothesis property tests) - test_api.py (Flask test client integration tests) - test_route_regressions.py (blueprint regression suite) - sync.py: audit log HWM replaces mtime change detection - /health: syncStatus, lastSyncAt, dbSizeBytes fields Track D…4d5727a
-
refactor: folder-based memory model replacing session-based storage
- Replace session-based KV scopes with (folder_path, agent_id) pairs - Add normalize_folder_path, folder_observe, folder_search, folder_timeline, folder_graph_build - Update forget/health_check/export_data/rebuild_index for folder model - Add migrate_sessions_to_folders (non-destructive migration) - Rewrite REST layer: /folders, /folder/observations, /timeline, /graph, /migrate - Trim MCP tools from 31 to 11; add memory_folders, memory_folder_observations, memory_timeline - Rebuild viewer to 4 tabs: Folders, Memories, Graph, Timeline - Add pytest test suite: test_normalize, test_folder_observe, test_forget, test_timeline, test_graph, test_migration - Add pytest==8.3.5 and hypothesis==6.131.15 to requirements.txtfbcb300
-
Fix memory_save and agent_remember: write observation when sessionId provided to link memory to session
2816e70 -
Merge branch 'main' of https://huggingface.co/spaces/Yash030/agentmemory-python
6b7f138 -
Implement memory_antigravity_sync_all master sync tool
dd1ca6e -
Upload plugin/.claude-plugin/plugin.json with huggingface_hub
Verified signaturec9d9b36 -
Upload plugin/plugin.json with huggingface_hub
Verified signature57c3c57 -
Upload README.md with huggingface_hub
Verified signature6919f68 -
Upload AGENTS.md with huggingface_hub
Verified signature1c3977b -
Upload src/mcp_stdio.py with huggingface_hub
Verified signature5b7c355 -
Upload src/app.py with huggingface_hub
Verified signature680e40e -
Upload plugin/scripts/prompt_submit.py with huggingface_hub
Verified signature3619c2d -
Upload plugin/.claude-plugin/plugin.json with huggingface_hub
Verified signature6737a9a -
Upload plugin/plugin.json with huggingface_hub
Verified signature20fe353