Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Benchmark harnesses support validation and are not part of Codetrip's Go runtime.
benchmarks/**/*.py linguist-detectable=false
15 changes: 15 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,22 @@ permissions:
contents: write

jobs:
quality:
name: Release gate
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4

- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true

- name: Verify release correctness
run: make release-gate

build:
needs: quality
name: ${{ matrix.goos }}/${{ matrix.goarch }}
strategy:
fail-fast: false
Expand Down
10 changes: 9 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,12 @@ go.work.sum
bin
.validation
/dist
.misc
.misc

# Public benchmark machine-local configuration and generated workspaces.
benchmarks/competitive/config.local.json
benchmarks/competitive/results.local/
__pycache__/

# Local README working drafts; the published English and Chinese files are tracked.
/README_DRAFT*.md
94 changes: 94 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,100 @@ All notable changes to codetrip will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.3.0] - 2026-08-10

### Added

- Added `Engine.Brief`, `codetrip brief`, and the MCP `brief` tool for
deterministic, bounded Agent Context Packs.
- Added ranked callers, callees, contracts, implementations, entrypoints,
related tests, direct-impact summaries, confidence, evidence, and explicit
truncation to symbol briefs.
- Added precise ambiguity errors and compact JSON plus terminal text output.
- Added compiler-backed Go interface contracts from local generated sources
without indexing their generated implementation bodies.
- Added exact TypeScript named-import aliases, wildcard barrel exports,
workspace packages, nested path mappings, and NodeNext source resolution.
- Added change-aware impact analysis for behavior, signature, contract, and
removal changes, with confirmed dependents, contract impacts, entry points,
related tests, review candidates, evidence paths, and coverage assumptions.
- Added automatic repository refresh with file fingerprints and explicit
`noop`, `incremental`, `full-fallback`, and `full` results.
- Added language-neutral incremental ingestion using content, structure, and
call-shape fingerprints. File-local body changes, call changes, structural
dependency expansion, and file add/delete/rename now share one invalidation
and publication protocol across supported languages; incompatible persisted
state safely triggers an atomic full rebuild.
- Added the MCP `index` tool so coding Agents can refresh graph and search data
after editing source without leaving the MCP workflow.
- Added `codetrip mcp --watch` with recursive cross-platform filesystem
watching, debounced refreshes, dynamic repository discovery, and stderr-only
diagnostics. `mcp setup --watch` installs this mode into supported clients.

### Changed

- Promoted Go and TypeScript/TSX to Stable after multi-repository Precision,
Recall, and 60-symbol Brief reviews.
- Go compiler semantics now load nested modules independently when a combined
workspace contains conflicting replacements.
- Top-level Go function deletion, rename, and signature changes now reload the
affected package closure instead of every repository package, while retaining
compiler-resolved calls and clean-full equivalence.
- Go embedded interfaces retain the true declaring owner for promoted methods
and use explicit `EXTENDS` relationships for embedding.
- Public graph, CLI, MCP, and Go API source coordinates are consistently
one-based.
- Stable-language calls now require lexical, import, receiver-type, or compiler
evidence instead of repository-wide unique-name guessing.
- Impact propagation now preserves uncertainty across dispatch bridges,
prevents alternative implementations from becoming confirmed dependents,
and excludes review-only candidates from aggregated Git diff impact.
- Changed CLI indexing to automatic refresh by default. `--full` forces a
complete rebuild and `--replace` remains a compatibility alias.
- Incremental graph, symbol, source, vector invalidation, and metadata changes
now publish as one recoverable revision. Full replacements continue to use
immutable snapshots, and queries never observe a partially committed revision.

### Fixed

- Fixed missing cross-module Go calls, interface implementations, method
dispatch, and generated RPC server contracts.
- Fixed local-variable and type-conversion calls being mapped to unrelated
same-name imported Go symbols.
- Fixed superseded lexical Go relationships surviving compiler reconciliation.
- Fixed TypeScript alias-import recall sampling and source target resolution.
- Fixed source excerpts and Git diff-to-symbol mapping after the one-based
coordinate migration.
- Fixed Go body-level call changes removing compiler-generated interface
method nodes and `HAS_METHOD`, `METHOD_IMPLEMENTS`, or `DISPATCHES_TO` facts.

### Quality

- Go reviewed Precision: 227/227; static Recall: 64/64.
- Impact Golden Facts review: Precision 116/116 (100%); Recall 116/129
(89.9%). The post-remediation Agent A/B rerun was invalidated because failed
impact invocations were not detected, so no efficiency claim is made from it.
- TypeScript/TSX reviewed Precision: 328/329; static Recall: 78/78.
- All 12 maintained language fixtures and all five C++ Stable fixtures pass.
- In a 20-task Codex A/B evaluation, `brief` reduced aggregate commands by
7.0%, input tokens by 5.4%, and output tokens by 7.7% without observed
answer-quality regression.
- In a blinded 20-task Codex A/B evaluation, `source` reduced aggregate
commands by 32.8%, file-reading commands by 50.0%, input tokens by 29.6%,
and output tokens by 18.5%; both arms passed 20/20 answer-quality reviews.
- Added 16 automated structural incremental gates across Go and TypeScript,
covering function add/delete/rename/move, signature and interface changes,
cross-file calls, and imports. Incremental graph, symbol, and source results
must match a clean full index.
- Compound structural edits on temporary runc and Understand-Anything checkouts
refreshed in 1.53 seconds and 0.33 seconds respectively; both incremental
node and edge exports were byte-for-byte identical to clean full indexes.
- Added a reproducible no-LLM live-context benchmark. Across five Gin function
renames, Codetrip needed one query, returned zero mixed revisions, and matched
a clean full index in 5/5 runs. CodeGraph and codebase-memory-mcp needed four
and three product operations at P50, a 67%–75% round-trip reduction for
Codetrip in this scenario; this is not presented as equivalent token savings.

## [0.2.1] - 2026-07-24

### Added
Expand Down
18 changes: 17 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ ifeq ($(GOOS),windows)
RELEASE_LDFLAGS += -extldflags=-static
endif

.PHONY: all build release-build build-all clean test version install help
.PHONY: all build release-build build-all clean test vet incremental-gate release-gate version install help

all: build

Expand Down Expand Up @@ -63,6 +63,19 @@ clean:
test:
go test ./...

vet:
go vet ./...

# Fast, named correctness gate for Go/TypeScript structural refreshes.
incremental-gate:
go test -run TestV030StructuralIncrementalReleaseGate -count=1 .

# Required before release artifacts are built. The full suite includes the
# structural incremental gate, so it is intentionally executed only once.
release-gate:
go test ./...
go vet ./...

version:
@echo "$(BINARY_NAME) v$(VERSION)"

Expand All @@ -76,6 +89,9 @@ help:
@echo " build-all - Dispatch the GitHub Actions multi-platform build"
@echo " clean - Remove build artifacts"
@echo " test - Run tests"
@echo " vet - Run Go static analysis"
@echo " incremental-gate - Compare structural incremental refreshes with clean full indexes"
@echo " release-gate - Run all correctness and static-analysis release checks"
@echo " version - Show version"
@echo " install - Install for the current platform"
@echo " help - Show this help"
Loading
Loading