feat: LeaveOff Points, Postman Integration, and install_scope fix#938
Open
trezero wants to merge 150 commits intocoleam00:mainfrom
Open
feat: LeaveOff Points, Postman Integration, and install_scope fix#938trezero wants to merge 150 commits intocoleam00:mainfrom
trezero wants to merge 150 commits intocoleam00:mainfrom
Conversation
0.1.0 release of Archon! Improvements across the board to crawling speed and reliability, RAG strategies, docs, task management, and documentation.
Release workflow update for Archon 0.1.0 release.
Adjusting permissions in release note workflow for Archon 0.1.0 release
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Documents the design for manage_rag_source and rag_check_progress MCP tools that enable inline document ingestion, URL crawling, source sync, and deletion through the MCP interface. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
12-task plan covering: API endpoint, MCP tools (manage_rag_source, rag_check_progress), project_id filtering, search enhancements, and tests. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add InlineDocument and InlineIngestRequest models to knowledge_api.py for the MCP inline ingestion feature. Also add hashlib and timezone imports needed by the upcoming endpoint. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add the endpoint and background task function for inline document ingestion. The endpoint validates the request, generates source_id from sha256(title+timestamp), initializes ProgressTracker, and spawns a background task. The background task builds synthetic crawl_results, delegates to DocumentStorageOperations for chunking/embedding/storage, and updates source metadata with source_type and ingestion_method. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… search tools - Task 4: Add manage_rag_source tool with consolidated add/sync/delete actions supporting inline document ingestion, URL crawling, source sync, and deletion - Task 5: Add rag_check_progress tool to poll async operation status with progress tracking and estimated remaining time - Task 6: Add project_id parameter to rag_search_knowledge_base and rag_search_code_examples to scope searches to project-associated sources Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add project_id field to RagQueryRequest for project-scoped searches - Resolve project_id to source_ids via archon_sources metadata lookup - Store project_id in source metadata during document storage (both primary and fallback paths) - Support comma-separated multi-source filtering across all search strategies (base vector, hybrid document, hybrid code) - Over-fetch from RPC and filter in Python for multi-source since PostgreSQL functions only support single source_filter Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Task 10: Tests for InlineDocument and InlineIngestRequest Pydantic models verifying default values, optional fields, and multi-document support. Task 11: Validation tests for manage_rag_source MCP tool covering invalid actions, missing required fields, bad JSON, empty arrays, and missing source_id for sync/delete operations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Comprehensive guide covering MCP connection setup, all 7 RAG tools, 6 integration workflows (ingest, URL crawl, sync, delete, code search, browse), complete parameter reference, search tips, error handling, and a full session integration example. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…zation) FastMCP transport auto-deserializes JSON strings to native Python types before they reach tool functions. The documents parameter now accepts both list (from MCP transport) and str (JSON string fallback). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Defines how MCP-ingested knowledge sources will surface in the Project view (new Knowledge tab with inline inspector) and Knowledge page (project filter dropdown). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
7-task plan covering backend API, frontend components, and Knowledge page project filter. Includes TDD steps and exact file paths. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… summary
- New GET /api/projects/{project_id}/knowledge-sources endpoint
- Added project_id query param to GET /api/knowledge-items/summary
- 6 new tests covering routing, param forwarding, and pagination clamping
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Create MCP tool wrapping the LeaveOff Point API with update/get/delete actions. Register in mcp_server.py following the standard module pattern. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When project_path is provided, upsert writes a LeaveOffPoint.md file with YAML frontmatter to .archon/knowledge/ in the project directory. Delete also removes the file when project_path is given. File I/O failures are caught and logged without breaking the DB operation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add get_leaveoff_point() to ArchonClient and fetch it in parallel during session start. LeaveOff context is rendered first in the archon-context block as the most important resumption context. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Emit a system-reminder warning when tracked tool observations reach 80, then repeat every 10 thereafter (90, 100, ...) to prompt the user to start a new session before hitting resource limits. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add instructions for Claude Code to update the LeaveOff Point after every coding task, manage session resources at the 90% rule threshold, and orient work around documented next steps at session start. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- PostgreSQL reserves 'references'; quote it in CREATE TABLE - Replace structured logger kwargs with f-string format Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Comprehensive design for automatic Postman collection and environment management per Archon project, replacing ad-hoc curl commands with a living API test suite. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Pivots from API-based backend architecture to Postman's Git-native Collections as Code workflow. Eliminates all backend services, MCP tools, database changes, API keys, and Settings UI — replaced by a single behavioral extension that writes human-readable YAML files directly to the repository. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Collections as Code skill that instructs Claude to write Postman .request.yaml files directly to the repository. 10 rules covering collection scaffolding, request generation, test scripts, environment management, folder organization, documentation references, and deduplication. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Combines API-based cloud sync (v1) and Collections as Code git YAML (v2) into a single design with POSTMAN_SYNC_MODE selector (api/git/disabled). - find_postman() returns sync_mode so Claude branches behavior - API mode: MCP tools → Archon backend → Postman Cloud API - Git mode: Claude writes .request.yaml files directly to repo - SKILL.md updated with Rule 0 (mode check) and dual-mode branching Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Enables users to replicate Postman collections between API and Git modes when switching or when they have existing data in one mode. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Port files from ~/.claude/skills/postman/ into python/src/server/services/postman/. Key changes: - config.py: programmatic initialization (no .env file reading) - retry_handler.py: replaced print(stderr) with logger.warning() - postman_client.py: updated imports to use relative package imports - exceptions.py, formatters.py: copied as-is (pure domain logic) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add sync_postman_environment() and get_postman_sync_mode() methods to ArchonClient. The session-start hook now checks the sync mode and, when set to "api", pushes the local .env file to the Postman environment sync endpoint. This is best-effort — failures are silently ignored so they never block session startup. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add 'from None' to HTTPException raises (B904) - Replace bare excepts with specific exceptions (E722) - Fix import ordering, stacklevel, isinstance syntax - All ruff checks pass clean Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
12 phases, 55+ test cases covering database, settings UI, backend API, MCP tools, API/git mode lifecycle, session hook, cross-mode sync, graceful degradation, and edge cases. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extensions now install to .claude/skills/ (project scope) or ~/.claude/skills/ (global scope) based on the install_scope setting in archon-config.json, instead of always writing to ~/.claude/skills/. Also adds .claude/skills/ and .claude/archon-state.json to the .gitignore entries in setup scripts (sh + bat) so per-machine Archon state is not committed to repos. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
|
Important Review skippedToo many files! This PR contains 252 files, which is 102 over the limit of 150. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (4)
📒 Files selected for processing (252)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment Tip You can make CodeRabbit's review stricter and more nitpicky using the `assertive` profile, if that's what you prefer.Change the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This branch adds two major features and a critical bugfix for the extension installation system:
LeaveOff Point Protocol
archon_leaveoff_pointstable for persisting session contextLeaveOffPoint.mdfile generation/api/leaveoff) for get/upsert/delete operationsmanage_leaveoff_point) with get/update/delete actionsPostman Integration
postman_collection_uidcolumn toarchon_projects/api/postman/*) — collections, environments, runs, monitors, link/unlinkfind_postman,manage_postman) — IDE-facing tools for Postman operations.envsync forPOSTMAN_API_KEYandPOSTMAN_SYNC_MODEpostman-integration/SKILL.md) for Claude CodeExtension install_scope Fix
/archon-setup,/archon-bootstrap, and/archon-extension-syncall ignored theinstall_scopesetting fromarchon-config.json, always writing extensions to~/.claude/skills/(global)install_scopefromarchon-config.jsonand install to.claude/skills/(project) or~/.claude/skills/(global) accordinglyinstall_pathfrom bootstrap MCP response.claude/skills/and.claude/archon-state.jsonto prevent per-machine state from being committedFiles Changed
leaveoff/,postman/leaveoff_api.py,postman_api.pyleaveoff_tools.py,postman_tools.pyarchon-setup.md,archon-bootstrap/SKILL.md,archon-extension-sync/SKILL.mdarchonSetup.sh,archonSetup.batdocs/Test plan
archonSetup.shon remote machine, verify extensions install to.claude/skills/with project scope/archon-setupin Claude Code, verify install path respectsinstall_scope.gitignoreincludes.claude/skills/and.claude/archon-state.json🤖 Generated with Claude Code