Update olddocs to reflect current implementation state

- REGISTRY.md: Mark phases 1-4, 6-8 complete; phase 5 partial
- WEB_UI.md: Update Phase 7 checklist with completion status
- DESIGN.md: Note TUI replaced by PySide6 GUI, update structure
- PROJECT.md: Update source structure and database schema
- PROVIDERS.md, META_TOOLS.md, COLLECTIONS.md: Add status notes
- Add "Features Implemented Beyond Original Design" sections

Co-Authored-By: Claude Opus 4.5 <[email protected]>
This commit is contained in:
rob
2026-01-17 03:35:42 -04:00
co-authored by Claude Opus 4.5
parent a46add05b7
commit 0d91eb7fa0
7 changed files with 396 additions and 182 deletions
+43 -23
View File
@@ -1,5 +1,9 @@
# CmdForge Project Overview
> **Document Status (January 2026)**: This overview is mostly accurate but the source structure
> section is outdated. The TUI has been replaced by a PySide6 GUI. Database now has 25+ tables.
> For current architecture, see `src/cmdforge/` directly.
This document provides a comprehensive overview of the CmdForge project structure, components, and how everything fits together.
## What is CmdForge?
@@ -32,52 +36,68 @@ See `docs/diagrams/` for visual representations:
```
src/cmdforge/
├── cli.py # Entry point, subcommand routing
├── cli/ # CLI commands
│ ├── __init__.py # Entry point, subcommand routing
│ └── registry_commands.py # Registry CLI commands
├── tool.py # Tool dataclasses, YAML loading
├── runner.py # Step execution engine
├── providers.py # AI provider abstraction
├── profiles.py # AI persona profiles
├── config.py # Global configuration
├── manifest.py # Tool manifest handling
│
├── gui/ # PySide6 Desktop GUI (primary UI)
│ ├── main_window.py # Main application window
│ ├── pages/ # Tools, Registry, Providers, Profiles pages
│ ├── dialogs/ # Step editors, Publish, Connect dialogs
│ └── workers/ # Background threads for API calls
│
├── registry/ # Registry API Server
│ ├── app.py # Flask API application
│ ├── db.py # Database operations, FTS5 search
│ ├── app.py # Flask API with 100+ endpoints
│ ├── db.py # Database operations, FTS5 search (25+ tables)
│ ├── rate_limit.py # API rate limiting
│ ├── sync.py # Git sync for tool submissions
│ ├── categorize.py # Auto-categorization
│ └── similarity.py # Similar tool recommendations
│ ├── scrutiny.py # Automated code analysis
│ ├── similarity.py # Duplicate detection
│ └── sync.py # Git sync for tool submissions
│
├── web/ # Web UI Application
│ ├── app.py # Flask web app, Sentry integration
│ ├── app.py # Flask web app
│ ├── routes.py # Page routes and handlers
│ ├── auth.py # Password hashing, login/register
│ ├── sessions.py # Session management
│ ├── docs_content.py # Documentation text content
│ ├── seo.py # Sitemap, robots.txt
│ ├── filters.py # Jinja template filters
│ ├── forum/ # Forum blueprint
│ ├── templates/ # Jinja HTML templates
│ └── static/ # CSS, JS, images
│ └── static/ # CSS (Tailwind), JS, images
│
├── registry_client.py # CLI client for registry API
├── resolver.py # Dependency resolution
│
├── ui.py # TUI dispatcher
├── ui_urwid.py # urwid TUI implementation
└── ui_snack.py # newt/snack TUI fallback
└── registry_client.py # CLI client for registry API
```
## Database Schema
SQLite database at `data/cmdforge.db`:
SQLite database at `~/.cmdforge/registry.db` (or via `CMDFORGE_REGISTRY_DB` env var):
| Table | Purpose |
|-------|---------|
| `publishers` | User accounts (username, email, password_hash) |
| `tools` | Published tools (name, owner, description, config) |
| `publishers` | User accounts with roles, banning, verification |
| `tools` | Published tools with moderation status, fork tracking |
| `api_tokens` | Authentication tokens for API access |
| `download_stats` | Tool download tracking |
| `pageviews` | Analytics for tool detail pages |
| `download_stats` | Tool download tracking by date |
| `reviews` | Tool reviews with 1-5 star ratings |
| `review_votes` | Helpful/unhelpful votes on reviews |
| `tool_issues` | Bug, security, compatibility issue reports |
| `collections` | Curated tool groups |
| `announcements` | Admin announcements |
| `featured_tools` | Featured tool placement |
| `featured_contributors` | Featured publisher placement |
| `reports` | Abuse reports for moderation |
| `audit_log` | Admin action audit trail |
| `pairing_requests` | App pairing flow |
| `web_sessions` | Session storage |
| `consents` | User consent for analytics/ads |
| `pageviews` | Analytics tracking |
| `tools_fts` | Full-text search index (FTS5) |
| `tool_stats` | Cached tool statistics |
| `publisher_stats` | Cached publisher statistics |
| `registry_settings` | Runtime-configurable settings |
## API Endpoints