Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
364 commits
Select commit Hold shift + click to select a range
ca824ff
docs(identity): L105 animated demo media (SVG + MP4 + README) (#90)
KooshaPari Jul 7, 2026
4e993dd
feat(forge_display): Terminal-Forge palette → theme.rs (Phenotype-org…
KooshaPari Jul 7, 2026
f5fc938
docs(readme): L107 — link to visual identity demo (L105 ladder close)…
KooshaPari Jul 7, 2026
2220633
audit(v38): forgecode C03 scorecard — Agent Readiness (18/36, D) (#85)
KooshaPari Jul 7, 2026
9d67435
renames(helioslite): publish-surface rename + provenance docs + relea…
KooshaPari Jul 7, 2026
3df1540
feat(forge_infra): L133 cross-pollination — backoff + cyclic_check + …
KooshaPari Jul 7, 2026
69f83e9
fix: per-provider error resilience and /providers remove TUI command
Jul 15, 2026
d7bc2cd
ci: fix release workflow heredoc indentation
Jul 22, 2026
3e7cb77
feat(gpu): add forge_gpu GpuLane for heterogeneous CUDA routing (#95)
KooshaPari Jul 22, 2026
5c9d92c
ci: harden workflows and unblock checks
Jul 22, 2026
562093e
ci: fix rust-cache action pin
Jul 22, 2026
81bb0df
ci: use pinned trufflehog action
Jul 22, 2026
f250836
ci: repair pinned action shas
Jul 22, 2026
14e1d29
ci: fix trufflehog image tag
Jul 22, 2026
8d5418c
ci: restore deny and nextest commands
Jul 22, 2026
e6fa43c
ci: install zig for workspace builds
Jul 22, 2026
a540d2e
chore: preserve local forgecode work
Jul 22, 2026
5e37326
ci: gate forge daemon zig core
Jul 22, 2026
f06a456
fix: preserve update fallback result handling
Jul 22, 2026
c1a39b2
fix: repair perf harness linux build
Jul 22, 2026
39fb119
perf: fast-path zsh rprompt
Jul 22, 2026
8edbc9b
fix: parse theme hex without string slicing
Jul 22, 2026
75ec697
fix: satisfy strict string safety lints
Jul 22, 2026
965d831
chore: preserve forgecode workflow and generated state
Jul 22, 2026
e238501
fix: satisfy ci clippy in perf harness
Jul 22, 2026
c34802b
chore: preserve forgecode workspace fixes
Jul 22, 2026
b182e54
ci: make autofix workflow verify only
Jul 22, 2026
2ca8562
ci: format fork gpu lane crate
Jul 22, 2026
3fa49a5
Merge remote-tracking branch 'fork/main' into fix/workflow-indent
Jul 22, 2026
aa329b8
chore: preserve forge info formatting
Jul 22, 2026
3056ea7
ci: align autofix and schema gates
Jul 22, 2026
5c82439
test: canonicalize generated schema
Jul 22, 2026
7422a3e
Merge pull request #96 from KooshaPari/fix/workflow-indent
KooshaPari Jul 23, 2026
fa5a7df
fix: gate forge3d unix sockets on windows
Jul 23, 2026
f7b7b9c
fix: gate forge3d daemon on unix
Jul 23, 2026
4ebc842
fix: preserve forge3d cli metadata on windows
Jul 23, 2026
8a6b095
feat(dual-harness): shared-3task.v1 process_smoke adapter
Jul 23, 2026
41f1c0a
chore: update Cargo.lock for dual_harness workspace member
Jul 23, 2026
11889d4
Merge pull request #98 from KooshaPari/feat/dual-harness-shared-3task
KooshaPari Jul 23, 2026
8e8efab
fix: clear forge3d windows release warnings
Jul 23, 2026
e3d5a9c
Merge remote-tracking branch 'fork/main' into fix/windows-release-for…
Jul 23, 2026
4948c81
fix: align dual harness with ci lint
Jul 23, 2026
e13d79b
fix: vendor dual harness fixture for ci
Jul 23, 2026
fd17142
Merge pull request #97 from KooshaPari/fix/windows-release-forge3d
KooshaPari Jul 23, 2026
c84b1e6
fix: gate forge daemon unix sockets on windows (#99)
KooshaPari Jul 23, 2026
7567a59
fix: repair winterminal windows release compile (#100)
KooshaPari Jul 23, 2026
5796c89
fix: report helioslite package version
Jul 23, 2026
2c20fd4
Merge pull request #101 from KooshaPari/fix/helioslite-version-brandi…
KooshaPari Jul 23, 2026
20f844b
fix: keep forge main cli tests compiling
Jul 23, 2026
f238e4f
fix: keep forge main cli tests compiling (#102)
KooshaPari Jul 23, 2026
a3cb940
Merge remote-tracking branch 'fork/main' into fix/per-provider-error-…
Jul 23, 2026
296be1d
fix: satisfy provider resilience clippy
Jul 23, 2026
9f2c201
fix: per-provider error resilience and provider removal (#94)
KooshaPari Jul 23, 2026
38332bd
chore: trigger main CI after merge train
Jul 23, 2026
58c3512
docs: record forgecode merge train
Jul 23, 2026
79c08fe
fix: gate forge tui unix sockets on windows
Jul 23, 2026
9f599be
fix: gate forge dbd unix sockets on windows
Jul 23, 2026
336318b
fix: silence forge dbd windows unix-gate warnings
Jul 23, 2026
425daf0
ci: install protoc for nightly and attestation
Jul 23, 2026
016130a
fix: align installers with fork release artifacts
Jul 23, 2026
14116a0
ci: use supported artifact provenance action
Jul 23, 2026
31b27db
ci: enable dev binary feature in nightly
Jul 23, 2026
290a312
ci: add scorecard workflow for quality gating
Jul 21, 2026
9a76738
chore(ci): harden github workflows and add fork scorecard/sast coverage
Jul 22, 2026
e9b1d4e
ci: fix workflow yaml needs indentation
Jul 22, 2026
43268fb
fix(spinner): suppress ANSI output when stderr is not a terminal
Jul 24, 2026
b7007ff
chore: add bench/ to .gitignore
Jul 24, 2026
6410d19
ci: add Mergify auto-merge rules
KooshaPari Jul 28, 2026
c883fd0
ci: add Trunk.io lint/format config
KooshaPari Jul 28, 2026
0c1ffa4
ci: add CircleCI parallel pipeline
KooshaPari Jul 28, 2026
db286f0
feat(compaction): add configurable compression and importance-based p…
Jul 28, 2026
db0c480
fix: integrate compaction strategies across providers
Jul 29, 2026
d957f56
ci: make generated lint and release gates runnable
Jul 29, 2026
8bf0e00
style: satisfy workspace formatting and clippy
Jul 29, 2026
11c99c3
wip(repo): preserve workspace conversation query
Jul 29, 2026
55e6582
feat(compaction): add AI-driven compression and semantic pruning
Jul 29, 2026
e7aa5b5
chore: preserve workspace conversation query support
Jul 29, 2026
9611099
fix(ui): adjust stream renderer for compaction integration
Jul 29, 2026
1ed5446
chore(ui): expose workspace conversation scope
Jul 29, 2026
2fc24ba
chore(api): thread workspace conversation scope
Jul 29, 2026
bb53128
fix(repo): preserve typed conversation summary selection
Jul 29, 2026
5aca614
fix: propagate lightweight conversation workspace scope
Jul 29, 2026
5b49d77
fix: propagate lightweight conversation workspace scope
Jul 29, 2026
7c0271a
fix(env): make workspace hashes deterministic
KooshaPari Jul 29, 2026
b01fb13
Merge branch 'chore/preserve-workspace-conversation-query'
Jul 29, 2026
52288fa
fix: use deterministic hash builder API
Jul 29, 2026
0279fe6
fix: avoid unchecked compaction indexing
Jul 29, 2026
8c463ac
chore(ci): regenerate release workflow manifests
Jul 29, 2026
80ace82
ci: refresh generated release workflow
Jul 29, 2026
3666eaa
style: format compaction bounds check
Jul 29, 2026
4d3d80b
ci: rerun canonical release gates
Jul 29, 2026
68aa2e4
ci: compare generated workflows semantically
Jul 29, 2026
230970e
build: lock workflow yaml parser
Jul 29, 2026
fd99999
chore: refresh forge config schema
Jul 29, 2026
1c9d07f
ci: harden scorecard and add fuzz smoke
Jul 29, 2026
10e2c98
ci: repair Mergify workflow syntax
Jul 29, 2026
33d5c2a
ci: remove obsolete Mergify rules
Jul 29, 2026
7bc16b3
fix: update plist XML parser dependencies
Jul 29, 2026
10736e6
ci: pin CodeQL and attestation actions
Jul 29, 2026
2f1b3a9
fix: refresh dependency SBOMs and remove vulnerable DNS stack
Jul 29, 2026
4326cbe
fix: remove unsupported hickory DNS configuration
Jul 29, 2026
0b70bcc
fix: scope release drafter write permissions
Jul 29, 2026
5e9ec7a
fix: upgrade workflow generator dependencies
Jul 29, 2026
273c52b
fix: replace unmaintained fnv_rs dependency
Jul 29, 2026
588b44c
fix: refresh configuration schema after DNS removal
Jul 29, 2026
91ae0ee
fix: migrate forge dbd protocol to bincode 2
Jul 29, 2026
c00e411
chore: configure Renovate dependency updates
Jul 29, 2026
92455e5
fix: remove non-actionable Mergify automation
Jul 29, 2026
96b811d
fix: replace direct deprecated yaml dependency
Jul 29, 2026
fdab9e1
style: format yaml policy test
Jul 29, 2026
b37e076
fix: remove unused embedding and clipboard image features
Jul 29, 2026
958ad86
ci: harden Scorecard and add fuzz smoke (#105)
KooshaPari Jul 29, 2026
eeeeaca
fix: use modern AWS HTTPS client
Jul 29, 2026
a170348
fix: grant release drafter label permission
Jul 29, 2026
b1c5bf3
fix: skip fork auto-labeling
Jul 29, 2026
3c94b43
fix: pin scorecard action to valid upstream commit
Jul 29, 2026
dd591a1
chore: retrigger ci after scorecard pin update
Jul 29, 2026
f0684f3
ci: update .mergify.yml
KooshaPari Jul 29, 2026
53b30c7
ci: update .github/workflows/ci.yml
KooshaPari Jul 29, 2026
5ad53c5
ci: update .github/workflows/trunk-check.yml
KooshaPari Jul 29, 2026
f8dcc30
ci: update .github/workflows/scorecard.yml
KooshaPari Jul 29, 2026
9d6d5fa
ci: update .github/stale.yml
KooshaPari Jul 29, 2026
0f767e3
ci: update .trunk/trunk.yaml
KooshaPari Jul 29, 2026
aa4397e
ci: update renovate.json
KooshaPari Jul 29, 2026
2a12599
ci: update .pre-commit-config.yaml
KooshaPari Jul 29, 2026
e301d3e
ci: skip release-drafter labels for fork PR branches
Jul 29, 2026
8bf81eb
ci: run release-drafter autolabeler only on push
Jul 29, 2026
ed0eec8
ci: disable release-drafter autolabeler in fork PR checks
Jul 29, 2026
1f039b8
ci: remove release-drafter autolabeler step
Jul 29, 2026
c55c97d
merge main into pr106 dependency hardening
Jul 31, 2026
a33d8ef
ci: refresh generated workflows after merge
Jul 31, 2026
be967dc
ci: remove fork-incompatible release labeling and repair trunk pin
Jul 31, 2026
38b506a
ci: disable release drafter autolabeler
Jul 30, 2026
406f0f1
ci: pin trunk action to verified revision
Jul 30, 2026
0394522
ci: replace legacy trunk config with rust gates
Jul 30, 2026
2f971d7
ci: refresh generated workflow
Jul 30, 2026
f5e8919
ci: quote workflow output paths
Jul 30, 2026
60fb0a7
ci: refresh generated release workflow
Jul 30, 2026
348ee52
ci: repair generated workflows
KooshaPari Jul 31, 2026
77b5216
merge promoted CI repairs into pr106
Jul 31, 2026
729f693
fix: use modern AWS HTTPS client
KooshaPari Jul 31, 2026
263ba4b
ci: pin scorecard CodeQL upload action
Jul 31, 2026
3d8983a
ci: pin scorecard CodeQL upload action (#111)
KooshaPari Jul 31, 2026
94f718b
ci: disable scorecard publishing on fork
Aug 1, 2026
4dd3bfb
Merge pull request #112 from KooshaPari/ci/scorecard-fork-compat-2026…
KooshaPari Aug 1, 2026
7d99122
ci: permit Scorecard SARIF upload
Aug 1, 2026
3ea6204
Merge pull request #113 from KooshaPari/ci/scorecard-sarif-permission…
KooshaPari Aug 1, 2026
1d35434
docs: link private vulnerability reporting
Aug 1, 2026
bdb52ca
Merge pull request #114 from KooshaPari/docs/security-policy-link-202…
KooshaPari Aug 1, 2026
eb53ff2
chore: remove stale rustsec ignores
Aug 1, 2026
5693e0d
chore: remove stale RustSec ignores (#115)
KooshaPari Aug 1, 2026
36e7e39
ci: scope Scorecard SARIF permission
KooshaPari Aug 1, 2026
43490d5
ci: update workflow with stable lint/test gate names
KooshaPari Aug 2, 2026
d2a084b
ci: update workflow with stable lint/test gate names
KooshaPari Aug 2, 2026
cdec9d4
ci: restore release workflow and stable gates (#118)
KooshaPari Aug 2, 2026
242f4d3
ci: add Infisical integration workflow
KooshaPari Aug 2, 2026
654d8fc
security: remove unsafe Infisical secret workflow (#119)
KooshaPari Aug 2, 2026
5a7ec3e
fix: make doctor and shell setup portable
KooshaPari Aug 2, 2026
07763de
fix: compile Windows doctor skip guard
KooshaPari Aug 2, 2026
3e1d574
Bound automatic continuation after interrupt limits (#122)
KooshaPari Aug 2, 2026
e484fdb
fix: native Windows auto-update, PATH cap, and Ctrl+C terminal restor…
KooshaPari Aug 2, 2026
167c181
fix(windows): escape updater PowerShell braces (#126)
KooshaPari Aug 2, 2026
fe6503b
ci: disable unsupported fork package channels (#125)
KooshaPari Aug 2, 2026
9af552c
ci: run release checksums under bash (#127)
KooshaPari Aug 2, 2026
41be28d
fix(ci): skip scheduled bounty PR sync
KooshaPari Aug 3, 2026
e62f0b1
fix: pin updater releases to matrix assets; harden install.sh (#130)
KooshaPari Aug 3, 2026
15b089c
ci: attest published release assets (#131)
KooshaPari Aug 3, 2026
b52b776
chore(deps): remove deprecated @types/handlebars stub (#132)
KooshaPari Aug 4, 2026
59fc1b9
chore(sbom): refresh CycloneDX artifacts (#134)
KooshaPari Aug 5, 2026
07a25a6
fix(shell): use canonical helioslite dispatch
KooshaPari Aug 5, 2026
f074ce1
fix(conversation): include compressed sessions and hide agent-launche…
KooshaPari Aug 5, 2026
6eb21b0
fix(conversation): also match compressed rows in by-parent/source/cwd…
KooshaPari Aug 5, 2026
957fddd
docs(README): add accessibility section (FR-014)
KooshaPari Aug 5, 2026
72986b5
feat(import): add one-way forge-db importer (helioslite import forge …
KooshaPari Aug 5, 2026
3e9c818
fix(import): do not double-count invalid IDs as errors in report
KooshaPari Aug 5, 2026
61c5592
ci: add .github/workflows/infisical.yml (org template)
KooshaPari Aug 5, 2026
12a682b
feat(gate5): canonical ~/.helioslite data dir, legacy ~/.forge honored
KooshaPari Aug 5, 2026
2f5a39c
docs(gate5): mark data-dir rename as done
KooshaPari Aug 5, 2026
c36b214
feat(doctor): add heliosdoctor diagnostics + binary-aware updater + i…
KooshaPari Aug 6, 2026
8d45e3f
fix(gate5): legacy ~/.forge keeps winning so an empty ~/.helioslite stub
KooshaPari Aug 6, 2026
09f4c75
docs(gate5): clarify legacy ~/.forge takes precedence over canonical …
KooshaPari Aug 6, 2026
66007c3
feat(import/export): dry-run, verbose, export, doctor verbose, unit t…
KooshaPari Aug 6, 2026
b4d6386
refactor: retire syntect advisory lineage (#135)
KooshaPari Aug 7, 2026
de20518
refactor: retire direct merge derives (#136)
KooshaPari Aug 7, 2026
c5054ef
ci: scope CodeQL push scans (#137)
KooshaPari Aug 7, 2026
01b2f3c
refactor(ci): retire gh-workflow generators (#138)
KooshaPari Aug 7, 2026
25136d5
fix: harden doctor and installer verification (#139)
KooshaPari Aug 7, 2026
d9858d5
feat(big-batch): integrity-check, json, migrate, forget, export-forma…
KooshaPari Aug 7, 2026
61d70ee
fix(migrate): honor --dry-run (don't move/rename data when dry_run=true)
KooshaPari Aug 7, 2026
8cdbbd9
ci: harden Infisical workflow permissions and pins (#142)
KooshaPari Aug 7, 2026
ccaf2ad
fix(release): align version metadata with v2.10.7 (#143)
KooshaPari Aug 7, 2026
911f432
feat(splitdb): wire SqliteCustomizer + PoolConfig::legacy_database_pa…
KooshaPari Aug 8, 2026
9b59ad5
fix(ci): restore indexmap serde feature (#144)
KooshaPari Aug 8, 2026
bde6020
fix(splitdb): legacy fallback paths, real ATTACH in customizer, stats…
KooshaPari Aug 8, 2026
76e18da
fix(splitdb): infra database_write_path must match domain semantics (…
KooshaPari Aug 8, 2026
f8557bc
fix(doctor): populate real DB stats + integrity check, align display …
KooshaPari Aug 8, 2026
6f296a2
fix(doctor): ForgeRepo must override EnvironmentInfra::database_stats
KooshaPari Aug 8, 2026
3d3ae45
fix(doctor): broaden count_where whitelist so per-category stats popu…
KooshaPari Aug 8, 2026
e4e71d9
fix: remove obsolete merge dependency lineage (#145)
KooshaPari Aug 8, 2026
c30e21d
feat(splitdb): complete read/write DB split with union reads by default
KooshaPari Aug 8, 2026
87b4fbf
fix(doctor): align infra stats with split-DB defaults
KooshaPari Aug 8, 2026
13cfd71
fix(doctor): plain ATTACH for legacy read in split stats
KooshaPari Aug 8, 2026
59abedd
fix(export): read through conversations_all union view
KooshaPari Aug 8, 2026
16ff1fc
docs: document split-DB default storage layout
KooshaPari Aug 8, 2026
f2118f8
fix(export): export empty-context rows instead of dropping them
KooshaPari Aug 8, 2026
f32d93e
test: harden executor, repo, and skill tests for cross-platform flaki…
KooshaPari Aug 8, 2026
ee32200
docs: add binary swap and release verification record
KooshaPari Aug 8, 2026
e213db7
fix(release): retire stale merge dependency lineage (#146)
KooshaPari Aug 8, 2026
4fc4ebb
feat(helioslite): safely import verified Forge session snapshots (#147)
KooshaPari Aug 8, 2026
8c33d41
merge: integrate origin/main (PRs #124-#145, updater/CI/security)
KooshaPari Aug 9, 2026
d2aad24
chore: add deterministic SBOM generation policy (#149)
KooshaPari Aug 9, 2026
d2b30b7
merge: integrate origin/main (#146 release lineage, #147 session snap…
KooshaPari Aug 9, 2026
121a2a5
Merge remote-tracking branch 'origin/main'
KooshaPari Aug 9, 2026
d6e394a
fix(splitdb): honor FORGE_LEGACY_DB_PATH and migrate both DBs
KooshaPari Aug 9, 2026
8d565f9
fix(updater): drop dead asset helper, publish helioslite release assets
KooshaPari Aug 9, 2026
9016da6
fix(portability): cross-platform drift db path and preview shell
KooshaPari Aug 9, 2026
dd02d71
docs: document split-DB storage model and refresh audit metadata
KooshaPari Aug 9, 2026
7e97f39
docs: record swap 5 (v2.10.7 install from detached worktree)
KooshaPari Aug 9, 2026
ec165f0
docs: record swap 6 (v2.10.7 rebuild incl. FORGE_LEGACY_DB_PATH)
KooshaPari Aug 9, 2026
4d4cffe
fix(repo): publish snapshots on Windows (cfg-gated staging-dir sync)
KooshaPari Aug 9, 2026
74d7411
feat(forge_dbd): real SQLite daemon ops aligned with split-DB write path
KooshaPari Aug 9, 2026
58e39fc
fix(ci): complete environment trait mocks (#152)
KooshaPari Aug 9, 2026
734a0a5
fix(config): remove unused base path resolver (#150)
KooshaPari Aug 9, 2026
afc1d34
test(services,repo,app): replace unimplemented!() mocks with honest i…
KooshaPari Aug 9, 2026
6c98c8c
test: fix Windows test-build blockers (unix gates, database_stats in …
KooshaPari Aug 9, 2026
12483da
feat(doctor): add --integrity-only cheap dual-DB PRAGMA check
KooshaPari Aug 10, 2026
d4a0186
merge: integrate other session test-gate fixes (local main)
KooshaPari Aug 10, 2026
c2f9c41
merge: fix leftover conflict markers in user_prompt mocks
KooshaPari Aug 10, 2026
31025a5
merge: integrate origin/main (#150, #152)
KooshaPari Aug 10, 2026
54dff28
fix(ci): repair Rust 1.96 quality gates (#153)
KooshaPari Aug 10, 2026
b6706f2
fix(doctor,test): CRLF-normalize embedded templates, gate Windows-pat…
KooshaPari Aug 10, 2026
fea04a9
docs: record swap 7 (v2.10.7 rebuild incl. forge_dbd + test hygiene)
KooshaPari Aug 10, 2026
75fd926
test(app): gate Unix-path workspace status test
KooshaPari Aug 10, 2026
ae4096a
fix(clippy): satisfy -D warnings in forge_app, forge_infra, forge_rep…
KooshaPari Aug 10, 2026
44cb74a
feat(forge_dbd): real conversation writes, lib+bin, named-pipe transport
KooshaPari Aug 10, 2026
bfaf147
feat(repo): route hot-path conversation writes through forge_dbd (opt…
KooshaPari Aug 10, 2026
d7c296a
test(domain): Windows twin for snapshot absolute-path test
KooshaPari Aug 10, 2026
f167fa2
feat(dbd): daemon lifecycle - idle shutdown and spawn-on-first-write
KooshaPari Aug 10, 2026
827d42b
fix(tool-macros): normalize CRLF in embedded tool descriptions
KooshaPari Aug 10, 2026
18abbcb
merge: integrate origin/main (#153 quality gates)
KooshaPari Aug 11, 2026
d899e6d
merge: integrate local main (forge_dbd daemon, swap 7)
KooshaPari Aug 11, 2026
a3d5b1e
fix(doctor): forward database_integrity through infra wrappers
KooshaPari Aug 11, 2026
f868742
merge: integrate database_integrity forwarding fix into main
KooshaPari Aug 11, 2026
d5136de
fix(helioslite): harden Forge snapshot import boundary (#160)
KooshaPari Aug 13, 2026
d930d59
fix(orch): remove duplicate database stats stub (#157)
KooshaPari Aug 13, 2026
7469c73
fix(release): align authoritative version metadata to 2.10.9 (#155)
KooshaPari Aug 13, 2026
a533b3d
fix(provider): retry transient OpenAI server errors (#161)
KooshaPari Aug 13, 2026
ca499f7
fix(repo): prevent daemon write replay after ack loss
Aug 14, 2026
99531eb
fix(repo): scope daemon deletes to workspace
Aug 14, 2026
dc80ed5
fix(dbd): preserve legacy context storage parity
Aug 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
248 changes: 248 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,248 @@
# =============================================================================
# CircleCI — Parallel CI for multi-language projects
# =============================================================================
# Used alongside GitHub Actions for:
# - Parallel execution on free tier (3000 credits/mo)
# - Faster builds with machine executors
# - Additional build matrix coverage
# =============================================================================

version: 2.1

# Orbs — reusable packages
orbs:
rust: circleci/rust@1.6.1
python: circleci/python@2.1.1
node: circleci/node@6.3.0
go: circleci/go@1.11.2
trunk: trunk-io/trunk@1.0.0

# Executors
executors:
small:
docker:
- image: cimg/base:current
resource_class: small

medium:
docker:
- image: cimg/base:current
resource_class: medium

large:
docker:
- image: cimg/base:current
resource_class: large

rust-executor:
docker:
- image: cimg/rust:1.80
resource_class: medium

python-executor:
docker:
- image: cimg/python:3.12
resource_class: medium

go-executor:
docker:
- image: cimg/go:1.22
resource_class: medium

node-executor:
docker:
- image: cimg/node:22.0
resource_class: medium

# Commands (reusable steps)
commands:
install-rust-tools:
steps:
- run:
name: Install Rust tools
command: |
cargo install cargo-deny cargo-audit || true

install-python-tools:
steps:
- run:
name: Install Python tools
command: |
pip install uv || curl -LsSf https://astral.sh/uv/install.sh | sh

install-go-tools:
steps:
- run:
name: Install Go tools
command: |
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

save-deps-cache:
parameters:
key:
type: string
steps:
- save_cache:
key: deps-{{ .Branch }}-<< parameters.key >>-{{ checksum "package-lock.json" }}{{ checksum "Cargo.lock" }}{{ checksum "go.sum" }}{{ checksum "uv.lock" }}
paths:
- ~/.cargo
- ~/.cache/pip
- node_modules
- vendor

restore-deps-cache:
parameters:
key:
type: string
steps:
- restore_cache:
keys:
- deps-{{ .Branch }}-<< parameters.key >>-{{ checksum "package-lock.json" }}{{ checksum "Cargo.lock" }}{{ checksum "go.sum" }}{{ checksum "uv.lock" }}
- deps-{{ .Branch }}-<< parameters.key >>-
- deps-main-<< parameters.key >>-

# Jobs
jobs:
# --- TRUNK CHECK (unified) ---
trunk-lint:
executor: small
steps:
- checkout
- trunk-check:
trunk-args: [--ci=fix]

# --- RUST ---
rust-check:
executor: rust-executor
steps:
- checkout
- restore-deps-cache:
key: rust
- run:
name: Check formatting
command: cargo fmt --all -- --check
- run:
name: Clippy lints
command: cargo clippy --all-targets --all-features -- -D warnings
- run:
name: Run tests
command: cargo test --all --workspace
- save-deps-cache:
key: rust

rust-build:
executor: rust-executor
steps:
- checkout
- restore-deps-cache:
key: rust
- run:
name: Build release
command: cargo build --release
- save-deps-cache:
key: rust
- persist_to_workspace:
root: target
paths:
- release

# --- PYTHON ---
python-check:
executor: python-executor
steps:
- checkout
- install-python-tools
- restore-deps-cache:
key: python
- run:
name: Install dependencies
command: uv sync --all-extras
- run:
name: Ruff lint
command: uv run ruff check .
- run:
name: Ruff format check
command: uv run ruff format --check .
- run:
name: Type check
command: uv run mypy . || true
- run:
name: Run tests
command: uv run pytest --cov -v
- save-deps-cache:
key: python
- store_test_results:
path: test-results

# --- GO ---
go-check:
executor: go-executor
steps:
- checkout
- restore-deps-cache:
key: go
- run:
name: Vet
command: go vet ./...
- run:
name: Lint
command: |
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
golangci-lint run
- run:
name: Test
command: go test -v -race -coverprofile=coverage.out ./...
- store_artifacts:
path: coverage.out
- save-deps-cache:
key: go

# --- TYPESCRIPT ---
node-check:
executor: node-executor
steps:
- checkout
- restore-deps-cache:
key: node
- run:
name: Install deps
command: npm ci || true
- run:
name: Lint
command: npx biome lint . || npx eslint . || true
- run:
name: Format check
command: npx biome format --check . || npx prettier --check . || true
- run:
name: Test
command: npm test || true
- save-deps-cache:
key: node

# Workflows
workflows:
version: 2
ci:
jobs:
- trunk-lint
- rust-check:
filters:
branches:
only: /.*/
tags:
only: /^v.*/
- rust-build:
requires:
- rust-check
- python-check:
filters:
branches:
only: /.*/
- go-check:
filters:
branches:
only: /.*/
- node-check:
filters:
branches:
only: /.*/
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']
61 changes: 61 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
## Summary

<!-- What does this PR do, and why? One or two sentences. Link issues if any. -->

## Linked FR

<!-- Which functional requirement does this change implement or affect?
Reference the ID(s) from FUNCTIONAL_REQUIREMENTS.md (e.g. FR-002, FR-014).
Add "N/A — no FR covers this change" only if truly none applies. -->

- [ ] FR-001 Core agentic loop
- [ ] FR-002 Tool execution
- [ ] FR-003 TUI & keyboard interaction
- [ ] FR-004 Configuration
- [ ] FR-005 ZSH plugin
- [ ] FR-006 Eval harness
- [ ] FR-007 Conversation persistence
- [ ] FR-008 MCP client
- [ ] FR-009 Providers & authentication
- [ ] FR-010 Self-update
- [ ] FR-011 Distribution & install
- [ ] FR-012 Semantic search & workspaces
- [ ] FR-013 Commit generation
- [ ] FR-014 Accessibility & screen-reader mode
- [ ] FR-015 Golden-output tests
- [ ] N/A

## Tests run

<!-- List the exact commands you ran and their outcome. Copy from your shell. -->

```bash
cargo check -p <crate>
cargo test -p <crate> # or: cargo nextest run -p <crate>
cargo insta test --accept # only when snapshot changes are intended
cargo clippy --all-targets -- -D warnings
cargo fmt --all -- --check
npm run eval <task.yml> # for eval-harness changes
```

- [ ] `cargo check` passes for every touched crate
- [ ] Tests pass for touched crates
- [ ] Clippy `-D warnings` passes on touched crates
- [ ] `cargo fmt --check` passes

## Screenshots / TUI output

<!-- Required for UI, theming, prompt, banner, or ZSH-plugin changes.
Paste terminal output or link a screenshot/gif. Otherwise write "N/A". -->

## Checklist

- [ ] Docs updated (README, docs/, FUNCTIONAL_REQUIREMENTS.md, VISUAL_SPEC.md as applicable)
- [ ] No secrets or credentials introduced (rely on env vars / `~/.forge` credential store)
- [ ] Rust docs (`///`) present on all new public items
- [ ] Tests follow AGENTS.md conventions (pretty_assertions, fixture/actual/expected)
- [ ] CI gates pass (ci / lint / test / cargo-deny / trufflehog)

## Risk & rollback

<!-- One-liner: worst-case impact if this merges and misbehaves, and how to revert. -->
33 changes: 33 additions & 0 deletions .github/branch-protection.main.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"required_status_checks": {
"strict": true,
"contexts": [
"ci",
"lint",
"test",
"cargo-deny",
"trufflehog"
]
},
"enforce_admins": true,
"required_pull_request_reviews": {
"dismiss_stale_reviews": true,
"require_code_owner_reviews": true,
"required_approving_review_count": 1,
"require_last_push_approval": true,
"bypass_pull_request_allowances": {
"users": ["KooshaPari"],
"teams": ["maintainers"],
"apps": ["renovate", "github-actions"]
}
},
"restrictions": null,
"required_linear_history": true,
"allow_force_pushes": false,
"allow_deletions": false,
"block_creations": false,
"required_conversation_resolution": true,
"lock_branch": false,
"allow_fork_syncing": true,
"required_signatures": true
}
Loading
Loading