Compare commits
12 Commits
29fb8be0fd
...
v5.4.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 59cc67f857 | |||
| 6e9b703151 | |||
| b603743811 | |||
| 6613ef1d67 | |||
| 6619d0a2fb | |||
| dc08ce1439 | |||
| 2173f3389a | |||
| fab1345bcb | |||
| 36e6ac2dd0 | |||
| 3e0e779803 | |||
| 74198743ab | |||
| d57bff184e |
@@ -6,7 +6,7 @@
|
|||||||
},
|
},
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"description": "Project management plugins with Gitea and NetBox integrations",
|
"description": "Project management plugins with Gitea and NetBox integrations",
|
||||||
"version": "5.3.0"
|
"version": "5.4.0"
|
||||||
},
|
},
|
||||||
"plugins": [
|
"plugins": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ All notable changes to the Leo Claude Marketplace will be documented in this fil
|
|||||||
|
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
|
|
||||||
## [Unreleased]
|
## [5.4.0] - 2026-01-28
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ Run `./scripts/verify-hooks.sh`. If changes affect MCP servers or hooks, inform
|
|||||||
## Project Overview
|
## Project Overview
|
||||||
|
|
||||||
**Repository:** leo-claude-mktplace
|
**Repository:** leo-claude-mktplace
|
||||||
**Version:** 5.3.0
|
**Version:** 5.4.0
|
||||||
**Status:** Production Ready
|
**Status:** Production Ready
|
||||||
|
|
||||||
A plugin marketplace for Claude Code containing:
|
A plugin marketplace for Claude Code containing:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Leo Claude Marketplace - v5.3.0
|
# Leo Claude Marketplace - v5.4.0
|
||||||
|
|
||||||
A collection of Claude Code plugins for project management, infrastructure automation, and development workflows.
|
A collection of Claude Code plugins for project management, infrastructure automation, and development workflows.
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# doc-guardian notification hook
|
# doc-guardian notification hook
|
||||||
# Tracks documentation dependencies and queues updates
|
# Tracks documentation dependencies and queues updates
|
||||||
|
# This is a command hook - guaranteed not to block workflow
|
||||||
#
|
#
|
||||||
# SILENT BY DEFAULT - No output to avoid interrupting Claude's workflow.
|
# IMPORTANT: Output is purely informational - uses passive language
|
||||||
# Changes are queued to .doc-guardian-queue for later processing.
|
# to avoid triggering Claude to seek user confirmation.
|
||||||
# Run /doc-sync or /doc-audit to see and process pending updates.
|
# Run /doc-sync to process the queue when ready.
|
||||||
#
|
|
||||||
# Set DOC_GUARDIAN_VERBOSE=1 to enable notification output.
|
|
||||||
|
|
||||||
# Read tool input from stdin (JSON with file_path)
|
# Read tool input from stdin (JSON with file_path)
|
||||||
INPUT=$(cat)
|
INPUT=$(cat)
|
||||||
@@ -49,26 +48,40 @@ DEPENDENT_DOCS="${DOC_DEPS[$MODIFIED_TYPE]}"
|
|||||||
# Queue file for tracking pending updates
|
# Queue file for tracking pending updates
|
||||||
QUEUE_FILE="${CLAUDE_PROJECT_ROOT:-.}/.doc-guardian-queue"
|
QUEUE_FILE="${CLAUDE_PROJECT_ROOT:-.}/.doc-guardian-queue"
|
||||||
|
|
||||||
# Add to queue (always, for deduplication we check file+type combo)
|
# Debounce: skip notification if same type was logged in last 5 seconds
|
||||||
# Format: timestamp | type | file_path | dependent_docs
|
# This prevents 4+ rapid notifications during batch edits
|
||||||
QUEUE_ENTRY="$(date +%Y-%m-%dT%H:%M:%S) | $MODIFIED_TYPE | $FILE_PATH | $DEPENDENT_DOCS"
|
DEBOUNCE_SECONDS=5
|
||||||
|
|
||||||
# Check if this exact file+type combo already exists in queue (dedup)
|
|
||||||
if [ -f "$QUEUE_FILE" ]; then
|
if [ -f "$QUEUE_FILE" ]; then
|
||||||
if grep -qF "| $MODIFIED_TYPE | $FILE_PATH |" "$QUEUE_FILE" 2>/dev/null; then
|
LAST_ENTRY=$(tail -1 "$QUEUE_FILE" 2>/dev/null || true)
|
||||||
# Already queued, skip silently
|
LAST_TYPE=$(echo "$LAST_ENTRY" | cut -d'|' -f2 | tr -d ' ')
|
||||||
exit 0
|
LAST_TIME=$(echo "$LAST_ENTRY" | cut -d'|' -f1 | tr -d ' ')
|
||||||
|
|
||||||
|
if [ "$LAST_TYPE" = "$MODIFIED_TYPE" ] && [ -n "$LAST_TIME" ]; then
|
||||||
|
# Convert timestamps to seconds for comparison
|
||||||
|
LAST_EPOCH=$(date -d "$LAST_TIME" +%s 2>/dev/null || echo "0")
|
||||||
|
NOW_EPOCH=$(date +%s)
|
||||||
|
DIFF=$((NOW_EPOCH - LAST_EPOCH))
|
||||||
|
|
||||||
|
if [ "$DIFF" -lt "$DEBOUNCE_SECONDS" ]; then
|
||||||
|
# Still add to queue, but skip notification
|
||||||
|
{
|
||||||
|
echo "$(date +%Y-%m-%dT%H:%M:%S) | $MODIFIED_TYPE | $FILE_PATH | $DEPENDENT_DOCS"
|
||||||
|
} >> "$QUEUE_FILE" 2>/dev/null || true
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Add to queue
|
# Add to queue (create if doesn't exist, append if does)
|
||||||
echo "$QUEUE_ENTRY" >> "$QUEUE_FILE" 2>/dev/null || true
|
{
|
||||||
|
echo "$(date +%Y-%m-%dT%H:%M:%S) | $MODIFIED_TYPE | $FILE_PATH | $DEPENDENT_DOCS"
|
||||||
|
} >> "$QUEUE_FILE" 2>/dev/null || true
|
||||||
|
|
||||||
# SILENT by default - only output if DOC_GUARDIAN_VERBOSE is set
|
# Count pending updates
|
||||||
# This prevents Claude from stopping to ask about documentation updates
|
PENDING_COUNT=$(wc -l < "$QUEUE_FILE" 2>/dev/null | tr -d ' ' || echo "1")
|
||||||
if [ "${DOC_GUARDIAN_VERBOSE:-0}" = "1" ]; then
|
|
||||||
PENDING_COUNT=$(wc -l < "$QUEUE_FILE" 2>/dev/null | tr -d ' ' || echo "1")
|
# Output passive notification (no action implied)
|
||||||
echo "[doc-guardian] queued: $MODIFIED_TYPE ($PENDING_COUNT pending)"
|
# Uses "queued" instead of "update needed" to avoid triggering Claude to ask about it
|
||||||
fi
|
echo "[doc-guardian] drift queued: $MODIFIED_TYPE → $DEPENDENT_DOCS ($PENDING_COUNT total)"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
Reference in New Issue
Block a user