docs: synchronize documentation, agent rules, instructions, tools/list, and resources/list

- Document all 53 MCP tools, 9 passive MCP resources, and 5 workflow prompts
- Document 100% ADR implementation status and automated post-commit reconciliation engine
- Update and deploy agent-rules (mcp_memory_workflow.md) to Windows and WSL
- Fix dashboard live ADR tab refresh and Cache-Control headers
- Synchronize instructions.md across root, server embedded, Windows, and WSL MCP configs
This commit is contained in:
Riz Ashraf committed 2026-10-07 21:34:43 +01:00
1 parent 37fc811752
commit 3b08f45618
8 files changed
+493 -283

No files matched your search

+11 -4
View File
@@ -216,7 +216,7 @@ Type: ${entity.entity_type}`,
}
async function loadGraph() {
try {
const res = await fetch("/api/graph");
const res = await fetch("/api/graph", { cache: "no-store" });
const dataText = await res.text();
if (dataText === lastGraphJson && network) {
return;
@@ -459,7 +459,7 @@ function applyTaskFilters() {
}
async function loadTasks() {
try {
const res = await fetch("/api/tasks");
const res = await fetch("/api/tasks", { cache: "no-store" });
cachedTasks = await res.json();
applyTaskFilters();
} catch (err) {
@@ -689,6 +689,7 @@ function requestDomainRefresh(domain) {
graph: "graph-tab",
task: "task-tab",
techdebt: "techdebt-tab",
adrs: "adrs-tab",
snippets: "snippets-tab",
terminal: "terminal-tab",
ledger: "ledger-tab",
@@ -713,6 +714,9 @@ function requestDomainRefresh(domain) {
case "techdebt":
loadTechDebt();
break;
case "adrs":
loadADRs();
break;
case "snippets":
loadSnippets();
break;
@@ -739,7 +743,10 @@ function handleIncomingActivity(payload) {
category = (payload.category || payload.type || "").toUpperCase();
}
}
if (method === "notifications/resources/updated" || category === "GRAPH" || category === "DECISION") {
if (method === "notifications/resources/updated" || category === "GRAPH") {
requestDomainRefresh("graph");
} else if (category === "DECISION" || category === "ADR") {
requestDomainRefresh("adrs");
requestDomainRefresh("graph");
} else if (method === "notifications/task/completed" || category.startsWith("TASK")) {
requestDomainRefresh("task");
@@ -1124,7 +1131,7 @@ async function loadGenericList(endpoint, containerId, formatter, options) {
state.formatter = formatter;
listControllers.set(containerId, state);
try {
const res = await fetch(endpoint);
const res = await fetch(endpoint, { cache: "no-store" });
if (!res.ok) {
container.innerHTML = `<div style="color:var(--error-color); padding:20px; text-align:center;">⚠️ Failed to load ${escapeHtml(endpoint)} (${res.status} ${escapeHtml(res.statusText)})</div>`;
return;