Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
c126175
ci: add cargo-deny config, fix workspace license (#3)
KooshaPari May 2, 2026
6e6679c
docs: add CLAUDE.md with fork context and Phenotype-org additions
KooshaPari May 2, 2026
af78ca8
docs: add journey-traceability + iconography implementation (#4)
KooshaPari May 2, 2026
03409b2
ci: SHA-pin GitHub Actions (normalize to canonical SHAs)
May 2, 2026
2fdbc96
chore: update stale workflow
May 2, 2026
a13e279
ci: add trufflehog secrets scan
May 2, 2026
0ca21da
docs: add CODEOWNERS
May 2, 2026
e322549
ci: add FUNDING.yml
KooshaPari May 2, 2026
f04b643
docs: add CONTRIBUTING.md and SECURITY.md
May 2, 2026
2658d36
Add CHANGELOG.md scaffolding
May 2, 2026
b6e8c02
docs: trim README to 169 lines, add fork preamble
May 2, 2026
406bc64
docs: trim README to 169 lines, add fork preamble (#5)
KooshaPari May 2, 2026
208dce5
ci(cargo-deny): add workflow_dispatch trigger, fix double-tag checkout
KooshaPari May 2, 2026
1d7024f
chore: bump version to 0.1.1 (#6)
KooshaPari May 3, 2026
4a97dce
chore: commit untracked infrastructure files
May 3, 2026
2d0cd6d
ci: pin all GitHub Actions SHA [org-bootstrap-2026-05-03]
May 3, 2026
864dd7c
fix(cargo-deny): remove stale RUSTSEC-2026-0049 ignore (#7)
KooshaPari May 4, 2026
9c1ef52
fix(cargo-deny): ignore unmaintained transitive advisories with ratio…
May 4, 2026
6100def
fix(cargo-deny): ignore unmaintained transitive advisories with ratio…
KooshaPari May 4, 2026
8fd7740
fix(forgecode): update compact history handling
May 4, 2026
fb623a1
fix(forge_main): suppress cursor position timeout errors on exit
May 5, 2026
e20a527
feat(forgecode): add LLM summarization for compaction
May 5, 2026
ebd253b
security(ci): replace trufflehog/actions/setup with go install + setu…
May 6, 2026
c14fe20
fix(forgecode): restore workspace members list
May 6, 2026
da8df12
chore: add cargo-deny bans config and update workflows
May 6, 2026
1e757df
fix(forgecode): restore workspace members
May 6, 2026
b2b6383
fix(workflows): use pull_request instead of pull_request_target
May 6, 2026
bfbfba7
chore: add omniroute benchmark plan
May 6, 2026
9bdfc16
chore(forgecode): add packageManager field
May 7, 2026
1b59732
fix(rust): tighten deny.toml wildcards policy in forgecode
May 7, 2026
93761b2
Merge upstream/main into main
May 28, 2026
c2bfb2b
Merge fork commit 6100def72 into synced main
May 28, 2026
598cc3a
chore(forgecode): shell-script hygiene (#14)
KooshaPari Jun 8, 2026
be8425b
chore(forgecode): align editorconfig with org standard (#16)
KooshaPari Jun 9, 2026
62e209a
ci: add release workflow with tag triggers, build, test, and crates.i…
Jun 9, 2026
8c91ed6
chore(forgecode): align version drift (#17)
KooshaPari Jun 9, 2026
7411096
chore(forgecode): add standard CODEOWNERS (#15)
KooshaPari Jun 9, 2026
ba9b6b8
chore(gitignore): adopt shared node template from phenotype-tooling (…
KooshaPari Jun 12, 2026
70e43e7
feat(session-viewer): hide subagent sessions, add FTS5 search, pagina…
Dmouse92 Jun 16, 2026
c462519
wip: pre-push snapshot 2026-06-18T02:00:13Z from wrap-up session
Jun 18, 2026
f4d300b
feat(forgecode): perf-v2 — dirty tracking, drop guard, FTS5 search, b…
KooshaPari Jun 21, 2026
eb1e886
feat(forgecode): v3 — :reparent/:cwd commands, sort UI, cwd+message_c…
KooshaPari Jun 21, 2026
345fb70
feat(forgecode): v4 — :reparent/:cwd commands, sort UI, ConversationS…
KooshaPari Jun 21, 2026
d31e918
fix(forge_app,forge_repo): add new Conversation fields to test fixtures
Jun 21, 2026
66d6160
chore(ci): regenerate workflows via gh-workflow-gen
Jun 21, 2026
1c91f6e
feat(config): document OutputMode in schema + chore(docs): L7 stub re…
Jun 21, 2026
2050073
fix(forgecode): v4-ux P0 reactivity — kill stale background tasks, Ar…
KooshaPari Jun 21, 2026
708849c
fix(forgecode): v4-ux P0 reactivity — kill stale background tasks, Ar…
KooshaPari Jun 21, 2026
ccf325a
feat(forgecode): status bar — Claude-style context/tokens/tools/last-…
KooshaPari Jun 22, 2026
aff6aed
fix(forge): non-TTY stdin no longer hangs; re-point auto-update to Ko…
KooshaPari Jun 23, 2026
95a9d1e
feat(forgecode): compress tool output to 3 lines with expand hint (#29)
KooshaPari Jun 24, 2026
85a24d1
feat(forgecode): ASCII color coding + symbol per tool type (#30)
KooshaPari Jun 24, 2026
953cced
feat(forgecode): promote subagent tool discovery to top-level system …
KooshaPari Jun 24, 2026
5a85a2b
fix: resolve persistent 'database is locked' in shared .forge.db (P1+…
KooshaPari Jun 26, 2026
476fa62
feat(forgecode): wire refresh_fts_index into background cadence (P2a)…
KooshaPari Jun 26, 2026
21dd884
feat(forgecode): configurable WAL checkpointer + ctrl_c graceful flus…
KooshaPari Jun 26, 2026
4e3e866
feat(P2b): external-content FTS5 migration + query rewrites (#36)
KooshaPari Jun 26, 2026
528d429
feat(forgecode): intent-gated semantic pruning — state machine + sche…
KooshaPari Jun 26, 2026
11f72d2
Merge upstream/main: resolve conflicts per UNION intents
Jun 26, 2026
b6ffe90
fix: add ConversationTree handler to ui.rs match statement
Jun 26, 2026
05b7c53
feat(forge_dbd): single-writer daemon scaffold — collapse N:1 SQLite …
KooshaPari Jun 26, 2026
e66cf4d
test(forge_repo): add comprehensive test suite for P1/P2/P2b/P4 merge…
KooshaPari Jun 26, 2026
596669b
feat(tooling): forge-session-cleaner — classifier + safe gated delete…
KooshaPari Jun 26, 2026
fe1a62f
feat: transparent zstd compression of context blobs (lossless) (#40)
KooshaPari Jun 26, 2026
fb118c9
feat: auto_vacuum=INCREMENTAL + periodic incremental_vacuum (#41)
KooshaPari Jun 26, 2026
7753b94
feat(tooling): forge-context-backfill — batch-compress existing rows …
KooshaPari Jun 26, 2026
8cf33ae
feat(forge_main): polish conv-view UX + wire FTS search & sort into s…
KooshaPari Jun 27, 2026
73771f2
feat(forge): CC parity — /clear /init /rewind commands with full infr…
KooshaPari Jun 27, 2026
ba6090a
feat(forgecode): absorb 5 pheno crates + drift wiring + ZSH hooks + s…
Jun 27, 2026
39f7dc4
fix(forge_select): debounce preview rendering to 150ms to avoid per-k…
KooshaPari Jun 28, 2026
22a89e0
fix(ci): unblock CI pipeline — fix cargo-deny action + setup-go SHA p…
KooshaPari Jun 28, 2026
5802046
feat(forge): add /review, /test, /think CC parity commands + debounce…
Jun 28, 2026
8e67a7f
feat(forge): subagent breadcrumb — '↳' prefix for conversations with …
Jun 28, 2026
536bb23
feat(forge): subagent breadcrumb 'spawned by X' in info panel + conv …
Jun 28, 2026
8654a3f
feat(forge): add :fts-optimize command — FTS5 index maintenance
Jun 28, 2026
6dfd197
feat(forge): add :fts-optimize command — FTS5 index maintenance
Jun 28, 2026
d46243e
fix(security): redact secrets in Debug (ApiKey/AuthCredential/OAuth t…
Jun 28, 2026
c461435
docs(audit): forgecode overhaul deep-audit + phased DAG WBS roadmap (…
KooshaPari Jun 28, 2026
789f270
feat(p0): de-fork doc/governance surface to Rust-first (#50)
KooshaPari Jun 28, 2026
c243d64
chore(crates): remove dead ghostty-kit + clarify forge_dbd WIP status…
KooshaPari Jun 28, 2026
86388f5
fix(stubs): implement openai http_delete + make NoopIntentExtractor a…
KooshaPari Jun 28, 2026
132dea4
fix(p1): redact device-code secrets + dedup update bots (#52)
KooshaPari Jun 28, 2026
21f2fbc
feat(p2): forge_dbd health probe + graceful drain on shutdown (#53)
KooshaPari Jun 28, 2026
082c0b0
fix(p2): cancellable/bounded async task lifecycle (FTS loop, forge3d …
KooshaPari Jun 28, 2026
8d3e09a
feat(p2): metrics facade + tracing spans on hot paths (#55)
KooshaPari Jun 29, 2026
95e265a
feat(p2): unify retry on RetryConfig + add circuit breaker & bulkhead…
KooshaPari Jun 29, 2026
db097a6
ci(p1): blocking fmt+clippy+test gates (Linux) (#57)
KooshaPari Jun 29, 2026
e04a618
docs(p4): STRIDE threat model + ops runbook/SLO/postmortem (#58)
KooshaPari Jun 29, 2026
2a01d21
fix(p3): remove runtime set_var + fix MCP TOCTOU + document unsafe (#59)
KooshaPari Jun 29, 2026
7c23c9c
feat(p3): criterion bench spine + jemalloc/mimalloc allocator + bound…
KooshaPari Jun 29, 2026
75614df
feat(p5): consolidate 3x internal SSE stop-signal + provider-model co…
KooshaPari Jun 29, 2026
2500511
feat(p5): OAuth + resilience contract specs (provider-models) (#64)
KooshaPari Jun 29, 2026
c3372a0
chore(contracts): pin to KooshaPari/phenotype-contracts SSOT + confor…
KooshaPari Jun 29, 2026
65e54aa
docs: agentic-coding-CLI SOTA research dossier + competitor matrix (#67)
KooshaPari Jun 29, 2026
0346be2
fix(security): default-deny policy engine + opt-in redacted telemetry…
KooshaPari Jun 30, 2026
ae27d7d
feat(provider): add ClinePass first-class provider stub
KooshaPari Jun 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
root = true

[*]
indent_style = tab
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Default owner for everything
* @KooshaPari
11 changes: 11 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
github: []
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: "npm/[email protected]"
community_bridge: # Replace with a single Community Bridge project slug-id
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project slug-e.g.
custom: # Replace with up to 3 custom sponsorship URLs e.g. ['https://example.com/donate']
6 changes: 5 additions & 1 deletion .github/workflows/autofix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,12 @@ env:
- main
jobs:
lint:
name: Lint Fix
# Advisory-only: auto-commits style fixes via autofix.ci.
# Blocking gates live in lint.yml (fmt --check) and test.yml (nextest).
# This job must NOT block merges — it is informational.
name: Lint Fix (advisory)
runs-on: ubuntu-latest
continue-on-error: true
permissions:
contents: read
steps:
Expand Down
22 changes: 22 additions & 0 deletions .github/workflows/cargo-deny.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Cargo Deny
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:

jobs:
cargo-deny:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
- uses: taiki-e/install-action@v2
with:
tool: cargo-deny
- name: Check
run: cargo deny check --log-level error
53 changes: 53 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: lint

on:
pull_request:
types: [opened, synchronize, reopened]
branches:
- main
push:
branches:
- main

jobs:
fmt:
name: "Format check (rustfmt)"
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4

- name: Setup Rust toolchain (stable + rustfmt)
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
components: rustfmt

- name: cargo fmt --check
run: cargo fmt --all -- --check

clippy:
name: "Clippy (-D warnings)"
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4

- name: Install system deps
run: sudo apt-get update -q && sudo apt-get install -y libsqlite3-dev protobuf-compiler

- name: Setup Rust toolchain (stable + clippy)
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
components: clippy

- name: Rust cache
uses: Swatinem/rust-cache@v2

- name: cargo clippy -D warnings
env:
RUSTFLAGS: "-D warnings"
run: cargo clippy --all-targets --all-features -- -D warnings
86 changes: 86 additions & 0 deletions .github/workflows/release-attestation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Release Attestation

on:
release:
types: [published]
workflow_dispatch:

permissions:
contents: read
id-token: write
attestations: write

jobs:
build-and-attest:
name: Build and Attest (SLSA Build L2)
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
attestations: write
env:
CARGO_WORKDIR: .
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable

- name: Cache cargo registry and build artifacts
uses: Swatinem/rust-cache@v2
with:
workspaces: |
. -> target

- name: Build release artifacts
working-directory: ${{ env.CARGO_WORKDIR }}
run: |
set -euo pipefail
cargo build --release --locked --workspace --all-targets

- name: Stage release artifacts
working-directory: ${{ env.CARGO_WORKDIR }}
run: |
set -euo pipefail
mkdir -p release-artifacts
# Copy all built executables
find target/release -maxdepth 1 -type f -executable \
-exec cp -t release-artifacts/ {} + 2>/dev/null || true
# Source tarball
tar \
--exclude='./target' \
--exclude='./.git' \
--exclude='./release-artifacts' \
-czf release-artifacts/source.tar.gz \
-C "$GITHUB_WORKSPACE/${{ env.CARGO_WORKDIR }}" .
# Build manifest
cat > release-artifacts/BUILD_MANIFEST.txt <<EOF
# Release Build Manifest
repository: ${{ github.repository }}
ref: ${{ github.ref }}
sha: ${{ github.sha }}
runner: ${{ runner.os }}
rustc: $(rustc --version)
cargo: $(cargo --version)
built_at: $(date -u +%Y-%m-%dT%H:%M:%SZ)
EOF
echo "=== Release artifacts ==="
ls -la release-artifacts/

- name: Upload artifacts for provenance
uses: actions/upload-artifact@v4
with:
name: release-artifacts
path: ${{ env.CARGO_WORKDIR }}/release-artifacts/
if-no-files-found: warn
retention-days: 90

- name: Attest build provenance (SLSA Build L2)
uses: slsa-framework/slsa-github-generator/attest-build-provenance@v1
with:
artifact-name: release-artifacts
38 changes: 38 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: test

on:
pull_request:
types: [opened, synchronize, reopened]
branches:
- main
push:
branches:
- main

jobs:
test:
name: "cargo nextest (all crates)"
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4

- name: Install system deps
run: sudo apt-get update -q && sudo apt-get install -y libsqlite3-dev protobuf-compiler

- name: Setup Rust toolchain (stable)
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable

- name: Rust cache
uses: Swatinem/rust-cache@v2

- name: Install cargo-nextest
uses: taiki-e/install-action@cargo-nextest

- name: cargo nextest run
env:
RUSTFLAGS: "-D warnings"
run: cargo nextest run --all-features --workspace
24 changes: 24 additions & 0 deletions .github/workflows/trufflehog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Trufflehog Secrets Scan
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

on:
push:
branches: [main]
pull_request:

jobs:
trufflehog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
fetch-depth: 0
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5
with:
go-version: 'stable'
- run: go install github.com/trufflehog/trufflehog/v3@latest
- run: trufflehog github --only-verified --no-update
env:
GH_TOKEN: \${{ secrets.GITHUB_TOKEN }}
28 changes: 28 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Phenotype-org standard .gitignore — Node
# Source: https://github.com/KooshaPari/phenotype-tooling/blob/main/templates/gitignore-node

# Generated by Cargo
# will have compiled files and executables
debug/
Expand Down Expand Up @@ -35,6 +38,7 @@ jobs/**
*.new
.vscode/
.fastembed_cache/
.cargo/
*.log*
*-dump.json
*-dump.html
Expand All @@ -46,3 +50,27 @@ jobs/**
node_modules/
bench/__pycache__
.ai/

# --- adopted from phenotype-tooling/templates/gitignore-node ---
.cache/
.eslintcache
.idea/
.npm/
.parcel-cache/
.pnp
.pnp.js
*.log
*.swp
/build/
/coverage/
/dist/
/out/
lerna-debug.log*
npm-debug.log*
pnpm-debug.log*
Thumbs.db
yarn-debug.log*
yarn-error.log*

# Local credential store (0o600, never commit)
.credentials.json
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added
### Changed
### Deprecated
### Removed
### Fixed
### Security

## [0.1.0] - YYYY-MM-DD

### Added
- Initial release
Loading
Loading