feat(ai): menu @ instantane, selecteurs agrandis et BooksLM racine (#82)
Nouvel endpoint GET /api/vault/{vault}/paths + prechargement et filtrage client du menu @ (affichage instantane des fichiers/repertoires). Selecteurs Fournisseur/Modele agrandis (0,8rem / 34px) pour s'aligner sur le reste du site. Ajout de BooksLM au menu contextuel de la racine des vaults.
This commit is contained in:
@@ -312,6 +312,22 @@ class TestTreeSearch:
|
||||
data = resp.json()
|
||||
assert len(data["results"]) == 0
|
||||
|
||||
def test_vault_paths_returns_indexed_paths(self, client):
|
||||
"""Flat path index backs the AI assistant `@` mention menu."""
|
||||
resp = client.get("/api/vault/TestVault/paths")
|
||||
assert resp.status_code == 200
|
||||
data = resp.json()
|
||||
assert data["vault"] == "TestVault"
|
||||
paths = [p["path"] for p in data["results"]]
|
||||
assert "note1.md" in paths
|
||||
assert all("type" in p for p in data["results"])
|
||||
|
||||
def test_vault_paths_rejects_unknown_vault(self, client):
|
||||
resp = client.get("/api/vault/DoesNotExist/paths")
|
||||
assert resp.status_code in (200, 403, 404)
|
||||
if resp.status_code == 200:
|
||||
assert resp.json()["results"] == []
|
||||
|
||||
|
||||
class TestSearchReplace:
|
||||
def test_search_replace_invalid(self, client):
|
||||
|
||||
Reference in New Issue
Block a user