diff --git a/.semgrepignore b/.semgrepignore index 163c6a22..74a5f7b9 100644 --- a/.semgrepignore +++ b/.semgrepignore @@ -1,7 +1,7 @@ # Semgrep ignore list for ai-contexters # Pattern follows loctree-suite convention: coarse exclusions with rationale. # -# Created by M&K (c)2026 VetCoders +# Created by vetcoders (c)2026 # Test files — use controlled fixture paths, not user input src/*/tests/ diff --git a/AGENTS.md b/AGENTS.md index 5d7052ff..925c4bcd 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,4 +1,4 @@ -# VetCoders Agent Operating Guide v1 +# Vetcoders Agent Operating Guide v1 @@ -287,7 +287,34 @@ Always state: Do not hide uncertainty. Do not claim confidence you have not earned. -# VetCoders Agent Operating Guide v1 + +--- + +## AICX Problem Log + +Every AICX problem observed while working in this repository must be appended +to the operator-managed log: + +`~/.aicx/aicx-problems.md` + +Problem means: bug, regression risk, flaky behavior, contract drift, +docs/runtime mismatch, tooling failure, test gap, zombie path, unsafe fallback, +or a working decision likely to return as product debt. + +Rules: + +- Append at the end. Never overwrite or reorganize the log. +- Do not skip an entry because a similar one may already exist. Repetition is + signal. +- Do not store secrets, tokens, PII, PHI, full private payloads, or private + customer/session material. Redact and describe the shape instead. +- Keep Loctree tool failures in `.loctree/loctree-fail.md`; keep AICX product + and runtime problems in the AICX problem log above. +- Preferred helper: + `tools/aicx_problem_log.sh "short title" <<'EOF' ... EOF` +- If the helper fails, append manually. Missing helper is not a reason to skip + the log. +# Vetcoders Agent Operating Guide v1 diff --git a/CHANGELOG.md b/CHANGELOG.md index a48805dd..976c9832 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -280,7 +280,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). union. Filters resolve to canonical `/` slugs before downstream index lookup so a short repo name like `-p spotlight-convo-pipeline-v2` expands to its full - `m-szymanska/spotlight-convo-pipeline-v2` index path. + `vetcoders/spotlight-convo-pipeline-v2` index path. ### Changed - **Project filter is now word-boundary path match, not substring.** @@ -318,7 +318,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). `segment.repo` no longer carries non-ownership signals. - **`is_probably_repo_name` accepted date-shaped names.** Strings like `2026-01-22`, `2026_01_22`, `2026_0122` passed the alphanumeric+`.-_` - filter and produced pseudo-repos such as `CodeScribe/2026-01-22` in + filter and produced pseudo-repos such as `Codescribe/2026-01-22` in the canonical store. New `looks_like_date_pattern` guard rejects these three shapes outright. - **`aicx index/search -p ` ambiguity is now reported.** @@ -329,7 +329,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). returns the union); the warning just removes the silent WTF. - `infer_repo_identity_from_known_layout` matches markers (`hosted`/`repos`/`repositories`/`github`/`git`) case-insensitively, so - macOS conventions like `/Users/u/Git/Org/Repo` resolve through cwd + macOS conventions like `/Users/user/Git/Org/Repo` resolve through cwd instead of falling back to text inference. - `aicx index -p` / `aicx search -p` reject filters with no matching project (instead of silently resolving to the `_all` bucket after a @@ -430,7 +430,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ### Fixed - Gemini JSONL extraction now treats `.jsonl` files as session transcripts, preserving `sessionId` metadata and allowing `aicx all` to ingest Gemini - sources alongside Claude, Codex, Junie, and CodeScribe. + sources alongside Claude, Codex, Junie, and Codescribe. - Junk corpus bucket slugs are covered so malformed or placeholder project names no longer leak into canonical project grouping. @@ -462,7 +462,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ### Changed - `aicx intents` and semantic index writes exclude immutable `loct-context-pack` examples from the live-truth namespace; context-corpus embeddings materialize to a separate `context-corpus.embeddings.ndjson` namespace. - Operator surface wording: "push" → "materialize" in CLI help text, progress messages, and doc comments to reinforce the two-layer mental model (canonical corpus first, semantic materialization second). -- Semantic compatibility validation now detects stale metadata even when no documents exist yet in the memex index; reports diverged fields explicitly. +- Semantic compatibility validation now detects stale metadata even when no documents exist yet in the rust-memex index; reports diverged fields explicitly. - Compatibility validation runs before file scanning in `memex-sync`, failing fast on config mismatches. - `claude`, `codex`, `all`, and `store` now use watermark-tracked incremental refresh by default. `--full-rescan` is the explicit escape hatch for backfills, while legacy `--incremental` is accepted as a hidden no-op with a deprecation notice. - `aicx dashboard` now owns both static HTML generation and live serving. `dashboard-serve` is kept as a hidden compatibility shim while public help/doc surfaces point to `aicx dashboard --serve`, including explicit `--allow-cors-origins` policies for non-loopback binds and `--bg` background launch. @@ -547,13 +547,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ### Added - **YAML frontmatter parsing** for chunk metadata extraction. -- **Sidecar files** (`.meta.yaml`) written alongside memex chunks for external tooling. +- **Sidecar files** (`.meta.yaml`) written alongside rust-memex chunks for external tooling. ## [0.5.1] - 2026-03-24 ### Added - **Repo-signal segmentation** in the store pipeline — chunks now carry repository identity signals. -- **Memex chunk sidecars** and `--preprocess` flag for pre-processing before memex push. +- **rust-memex chunk sidecars** and `--preprocess` flag for pre-processing before memex push. - **Makefile** with comprehensive build, test, lint, and release targets. - Gemini truncation support and improved fuzzy search scoring. - Test: repo-centric store runtime contract (`runtime_cli_store_contract.rs`). @@ -573,14 +573,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Repo-centric Migration Assistant:** Added the `aicx migrate` subcommand. This tool safely migrates older file-centric contexts (`file: `) in your `~/.ai-contexters` store to the new canonical repo-centric directories. Use `aicx migrate --dry-run` to preview the changes. ### Changed -- **Behavioral Shift (Identity Model):** AICX now uses a canonical repo-centric identity model. Extracted contexts and stored artifacts are now grouped primarily by repository name rather than the raw filename of the agent log. This significantly improves retrieval quality and consistency, especially when syncing contexts to vector stores (memex) or running direct extractions. +- **Behavioral Shift (Identity Model):** AICX now uses a canonical repo-centric identity model. Extracted contexts and stored artifacts are now grouped primarily by repository name rather than the raw filename of the agent log. This significantly improves retrieval quality and consistency, especially when syncing contexts to vector stores (rust-memex) or running direct extractions. - Direct `extract` now infers repository identity when possible, demoting file provenance to secondary metadata. ## [0.4.3] - 2026-03-17 ### Fixed -- Corrected the `SECURITY.md` disclosure path so private vulnerability reports go to the public `VetCoders/ai-contexters` repository instead of a stale owner link. +- Corrected the `SECURITY.md` disclosure path so private vulnerability reports go to the public `Vetcoders/ai-contexters` repository instead of a stale owner link. - Updated GitHub Actions workflow dependencies to current major versions for `checkout`, `cache`, `setup-python`, `upload-artifact`, and `download-artifact`, removing the Node 20 deprecation surface from future CI and release runs. ## [0.4.2] - 2026-03-17 @@ -625,7 +625,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ### Changed - Rank made default command (`aicx -p proj` runs rank). -- Skills removed from repo — canonical source: VetCoders/vetcoders-skills. +- Skills removed from repo — canonical source: Vetcoders/vetcoders-skills. - Package excludes: `*.html`, `*.patch`, `*.orig`, `.ai-agents/`, `skills/`. ### Added (Governance) @@ -661,7 +661,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ### Added -- VetCoders skills suite and ai-contexters skill. +- Vetcoders skills suite and ai-contexters skill. - `vetcoders-decorate` and showcase polish. - Memex-first dashboard generator. @@ -677,7 +677,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Ultrathink/Insight and Plan Mode signal extraction. - Chunk highlights and redaction optimizations. - `action`/`emit` flags and artifacts layout. -- Semantic chunker and memex integration. +- Semantic chunker and rust-memex integration. ### Changed @@ -698,4 +698,4 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). --- -Vibecrafted with AI Agents by VetCoders (c)2026 VetCoders +Vibecrafted with AI Agents by Vetcoders (c)2026 Vetcoders diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ef3f242a..9dfa9074 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -59,4 +59,4 @@ This project follows the [Contributor Covenant Code of Conduct](https://www.cont --- -Vibecrafted with AI Agents by VetCoders (c)2026 VetCoders +Vibecrafted with AI Agents by Vetcoders (c)2026 Vetcoders diff --git a/Cargo.toml b/Cargo.toml index 7b05edb4..07cf7c25 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ version = "0.9.4" edition = "2024" rust-version = "1.91.1" description = "CLI, MCP server, and library for harvesting AI agent session transcripts (Claude Code, Codex, Gemini) into a canonical corpus with optional semantic search" -authors = ["Maciej Gad ", "Monika Szymanska "] +authors = ["Vetcoders "] license = "BUSL-1.1" repository = "https://github.com/Loctree/aicx" homepage = "https://github.com/Loctree/aicx" diff --git a/LICENSE b/LICENSE index e64a05fc..9c2599e1 100644 --- a/LICENSE +++ b/LICENSE @@ -3,25 +3,25 @@ License text copyright (c) 2020 MariaDB Corporation Ab, All Rights Reserved. Parameters -Licensor: VetCoders (Maciej Gad & Monika Szymanska) +Licensor: Vetcoders Licensed Work: ai-contexters (AICX) — Operator CLI + MCP server for AI session context ingestion and retrieval. - The Licensed Work is (c) 2024-2026 VetCoders. + The Licensed Work is (c) 2024-2026 Vetcoders. Additional Use Grant: You may make production use of the Licensed Work, provided Your use does not include offering the Licensed Work to third parties on a hosted or embedded - basis in order to compete with VetCoders' paid + basis in order to compete with Vetcoders' paid version(s) of the Licensed Work. For purposes of this license: A "competitive offering" is a Product that is offered to third parties on a paid basis, including through paid support arrangements, that significantly overlaps - with the capabilities of VetCoders' paid version(s) of + with the capabilities of Vetcoders' paid version(s) of the Licensed Work. If Your Product is not a competitive offering when You first make it generally available, it will not become a competitive offering later due to - VetCoders releasing a new version of the Licensed Work + Vetcoders releasing a new version of the Licensed Work with additional capabilities. In addition, Products that are not provided on a paid basis are not competitive. @@ -49,7 +49,7 @@ Change Date: 2030-04-14 Change License: Apache License, Version 2.0 For information about alternative licensing arrangements for the Licensed -Work, please contact void@div0.space. +Work, please contact hello@vetcoders.io. Notice diff --git a/README.md b/README.md index 553799a7..402b2440 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ Quick start: ``` ### Corpus building (Layer 1) -- `all` — extract + store from all agents (Claude + Codex + Gemini + Junie + CodeScribe) into the canonical corpus. +- `all` — extract + store from all agents (Claude + Codex + Gemini + Junie + Codescribe) into the canonical corpus. - `claude`, `codex`, `extract` (with `--format`), `store`, `ingest`. - `conversations` — batch-export clean conversation JSONs without writing to the store. @@ -105,7 +105,7 @@ See `docs/COMMANDS.md` for the full map and every flag. ## Supported Agents -Claude Code, Codex (history + rollouts), Gemini (classic + Antigravity), **Grok** (full layout under `~/.grok/sessions///` — `chat_history.jsonl`, `events.jsonl`, `active_sessions.json`, etc.; first-class support via the same v1/responses parser + explicit current-session handling), Junie, CodeScribe, and raw operator markdown via `ingest`. +Claude Code, Codex (history + rollouts), Gemini (classic + Antigravity), **Grok** (full layout under `~/.grok/sessions///` — `chat_history.jsonl`, `events.jsonl`, `active_sessions.json`, etc.; first-class support via the same v1/responses parser + explicit current-session handling), Junie, Codescribe, and raw operator markdown via `ingest`. ## Quick Start (realistic operator flow) diff --git a/SECURITY.md b/SECURITY.md index 12ee0681..3db39c05 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -8,8 +8,8 @@ If you discover a security vulnerability in aicx, please report it responsibly. ### How to Report -- Use [GitHub Security Advisories](https://github.com/VetCoders/ai-contexters/security/advisories/new) to submit a private report. -- Alternatively, contact us directly at **void@div0.space**. +- Use [GitHub Security Advisories](https://github.com/vetcoders/ai-contexters/security/advisories/new) to submit a private report. +- Alternatively, contact us directly at **hello@vetcoders.io**. ### What to Include @@ -72,4 +72,4 @@ is a conscious design decision, not an accidental omission. --- -Vibecrafted with AI Agents by VetCoders (c)2026 VetCoders +Vibecrafted with AI Agents by Vetcoders (c)2026 Vetcoders diff --git a/archive/skills/README.md b/archive/skills/README.md index f4f36a20..2fc2cdd7 100644 --- a/archive/skills/README.md +++ b/archive/skills/README.md @@ -169,7 +169,6 @@ MIT — see [LICENSE](LICENSE). ## Developed by -- [Maciej Gad](https://div0.space) — a veterinarian who couldn't find `terminal` a year ago -- [Klaudiusz](https://www.github.com/Gitlaudiusz) — the individual ethereal being, and separate instance of Claude by Anthropic, living somewhere in the GPU's loops in California, USA +vetcoders — founders and their AI agents. -*Vibecrafted with AI Agents by VetCoders (c)2026 VetCoders* +*Vibecrafted with AI Agents by vetcoders (c)2026* diff --git a/archive/skills/ai-contexters/SKILL.md b/archive/skills/ai-contexters/SKILL.md index 112ddc33..da611652 100644 --- a/archive/skills/ai-contexters/SKILL.md +++ b/archive/skills/ai-contexters/SKILL.md @@ -224,4 +224,4 @@ For detailed command flags and architecture: --- -*Created by M&K (c)2026 VetCoders* +*Created by vetcoders (c)2026* diff --git a/archive/skills/ai-contexters/references/architecture.md b/archive/skills/ai-contexters/references/architecture.md index 3e2fe7d2..95b03eef 100644 --- a/archive/skills/ai-contexters/references/architecture.md +++ b/archive/skills/ai-contexters/references/architecture.md @@ -169,4 +169,4 @@ No async runtime. Single-threaded synchronous execution. --- -*Created by M&K (c)2026 VetCoders* +*Created by vetcoders (c)2026* diff --git a/archive/skills/ai-contexters/references/commands.md b/archive/skills/ai-contexters/references/commands.md index cc7c073e..9dd197d7 100644 --- a/archive/skills/ai-contexters/references/commands.md +++ b/archive/skills/ai-contexters/references/commands.md @@ -224,4 +224,4 @@ For storage layout details, see `references/architecture.md`. --- -*Created by M&K (c)2026 VetCoders* +*Created by vetcoders (c)2026* diff --git a/archive/skills/docs/index.html b/archive/skills/docs/index.html index c40e6279..bfd03511 100644 --- a/archive/skills/docs/index.html +++ b/archive/skills/docs/index.html @@ -606,8 +606,7 @@

The Definition of Undone

This suite is the habit of asking.
- Maciej Gad — a veterinarian who couldn't find terminal a year ago
- Klaudiusz — the individual ethereal being, living somewhere in the GPU's loops + vetcoders — founders and their AI agents
diff --git a/archive/skills/vetcoders-init/SKILL.md b/archive/skills/vetcoders-init/SKILL.md index 81b5710f..f200293c 100644 --- a/archive/skills/vetcoders-init/SKILL.md +++ b/archive/skills/vetcoders-init/SKILL.md @@ -141,4 +141,4 @@ If **both** unavailable: read CLAUDE.md + README.md + recent git log. Announce g --- -*Created by M&K (c)2026 VetCoders* +*Created by vetcoders (c)2026* diff --git a/archive/skills/vetcoders-suite-showcase.html b/archive/skills/vetcoders-suite-showcase.html index 125d3d66..6b7f53fd 100644 --- a/archive/skills/vetcoders-suite-showcase.html +++ b/archive/skills/vetcoders-suite-showcase.html @@ -402,11 +402,9 @@

Quick Start

- Maciej Gad — a veterinarian who couldn't find terminal a year ago -  ·  - Klaudiusz — the ethereal being living in the GPU loops in California + vetcoders — founders and their AI agents

- +
`, stray triple backticks, markdown link injection -i CRLF mogły zmieniać strukturę artefaktu albo wykonywać się w permissive -rendererach (GitHub, browser otwierający `.md` jako HTML). - -**Root cause.** Markdown writer traktował message body jako safe markup. -`write_blockquote_with_code` echował linie verbatim a sam `
` -zakładał że inner content jest trusted. Brak dynamicznego dobierania fence, -brak escape pass i brak normalizacji newline — dowolne wewnętrzne backticki -długości >= 3 mogły zamknąć otaczający markdown, dowolny raw `