Repository navigation
v0.56.0
What's Changed
- docs(plugin): say what the Claude Code plugin runs and what leaves the machine by @RaghavChamadiya in #3041
- release(vscode): 0.11.0 by @RaghavChamadiya in #3042
- fix(plugin): pass the plugin directory's checks by @RaghavChamadiya in #3043
- fix(tests): remove claude plugin manifest claim from COUNT_CLAIMS by @justonemorenight in #3045
- fix(workspace): queue missing-fingerprint reindex under a shared database by @mvanhorn in #3044
- fix(persistence): loosen PostgreSQL columns at startup so Docker upgrades need no Alembic step by @RaghavChamadiya in #3068
- fix(decisions): say how many decisions were kept from how many candidates by @RaghavChamadiya in #3088
- fix(answer): give reasoning models room to write the synthesized answer by @RaghavChamadiya in #3094
- feat(update): index uncommitted work with repowise update --working-tree by @RaghavChamadiya in #3095
- fix(risk): pair FooTest.java, FooTests.cs and FooSpec.kt with their source by @RaghavChamadiya in #3096
- feat(context): add the skeleton+ view: every signature with its lines and all non-function code by @RaghavChamadiya in #3097
- fix(mcp): resolve Class.method and bare unique names the same way everywhere by @RaghavChamadiya in #3099
- ci: run unit tests across all runner cores with pytest-xdist by @RaghavChamadiya in #3098
- fix(mcp): stop searches waiting 30s for a readiness signal nothing tracks by @RaghavChamadiya in #3115
- feat(risk): list the test files a change will probably need to edit by @RaghavChamadiya in #3101
- fix(answer): keep the retrieval ranking first in keyless citations by @RaghavChamadiya in #3102
- perf(update): skip history and analysis phases on a working-tree-only update by @RaghavChamadiya in #3107
- feat(answer): serve a compact ranked shortlist on low and keyless answers by @RaghavChamadiya in #3108
- fix(editor-files): steer agents correctly on keyless indexes and mid-edit by @RaghavChamadiya in #3109
- feat(answer): rank files named in a stack trace or by identifier in the question first by @RaghavChamadiya in #3116
- fix(tests): count keyless candidate_files the way the citation rule serves them by @RaghavChamadiya in #3122
- fix(mcp): mark served targets with uncommitted edits instead of calling them fresh by @RaghavChamadiya in #3100
- refactor(risk): one test list and no empty families in the get_risk PR directive by @RaghavChamadiya in #3117
- perf(risk): serve the PR blast radius only on request by @RaghavChamadiya in #3118
- fix(risk): stop risk summaries from overstating or understating a change by @RaghavChamadiya in #3123
- refactor(risk): drop the uncalibrated structural score from get_risk replies by @RaghavChamadiya in #3124
- docs(mcp): tighten the search_codebase docstring by @RaghavChamadiya in #3125
- feat(search): rank files the query names first and return an exact symbol alone by @RaghavChamadiya in #3127
- feat(mcp): list every edit site of a symbol, verified against live files by @RaghavChamadiya in #3126
- feat(mcp): accept a grep-style pattern argument as the search query by @RaghavChamadiya in #3128
- feat(search): name the matching symbols and lines inside each file hit by @RaghavChamadiya in #3130
- feat(search): return matching source lines for identifier and literal queries by @RaghavChamadiya in #3131
- feat(mcp): tell agents when to reach for repowise instead of a text search by @RaghavChamadiya in #3134
- feat(symbol): outline a large class instead of returning its whole body by @RaghavChamadiya in #3136
- feat(answer): serve a ranked file list when keyless retrieval is weak by @RaghavChamadiya in #3137
- feat(context): keep only the target symbol's body in a symbol skeleton by @RaghavChamadiya in #3135
- fix(change-risk): floor and cap the 'bigger than N%' percentile at 99 by @Nehant14 in #3120
- fix(gemini): drop additionalProperties from tool schemas by @mercael91 in #3064
- fix(test-paths): count mocks anywhere and the other .NET test-project suffixes by @ybai08 in #2669
- fix(health): a repo with no scored file has no score, not 10.0 by @swati510 in #3053
- docs(reference): add the API facts OpenAPI cannot carry by @sloemo01 in #2342
- fix(test-paths): classify Perl-style t/ as a Python test tree (#2962) by @soumojit-D48 in #3046
- fix(go): capture a generic call written with explicit type arguments by @ybai08 in #2992
- fix(uninstall): list and remove the post-commit hook that init installs by @Aman-goel-04 in #2655
- fix(ingestion): support comments in tsconfig.json and jsconfig.json (#3058) by @rishu685 in #3067
- fix(providers): default anthropic and claude_cli to claude-haiku-5-5 by @sammcj in #3093
- fix(cli): drop a stale embedding_model pin when init resolves none by @Aman-goel-04 in #2654
- fix(health): stop knowledge_loss firing on a pure-rename-only commit window by @Aman-goel-04 in #3075
- fix(mcp): stop watchdog walk at unnamed or dead ancestor by @Aman-goel-04 in #3142
- fix(mcp): anchor fix history recency to indexed commit instead of wall clock (#3110) by @rishu685 in #3145
- fix(generation): sort wiki backlinks deterministically before applying cap (#2792) by @rishu685 in #2881
- fix(editor-files): separate the confidence and scope sentences in the CLAUDE.md/AGENTS.md header (#3103) by @tecsmurf in #3144
- feat(web): i18n foundation (next-intl + English fallback + catalog gates) by @limitcool in #3129
- feat(web): add the zh-CN catalog and the language switcher by @limitcool in #3151
- refactor(providers): share one base for agent CLI providers by @RaghavChamadiya in #3167
- feat(providers): declare every LLM provider once, as a ProviderSpec by @RaghavChamadiya in #3168
- feat(agents): add the Basic tier and an Indexing column by @RaghavChamadiya in #3169
- feat(init): default the provider picker to the agent you use by @RaghavChamadiya in #3171
- fix(settings): read provider, embedder and price facts from the server by @RaghavChamadiya in #3172
- feat(agents): add GitHub Copilot CLI and Kiro targets, Copilot instructions for VS Code by @RaghavChamadiya in #3173
- docs(agents): add the agent platform recipe for contributors by @RaghavChamadiya in #3178
- feat(agents): rewrite Cursor shell commands through a preToolUse hook by @RaghavChamadiya in #3177
- fix(mcp): accept a query argument as the symbol id in get_symbol by @RaghavChamadiya in #3140
- fix(search): match path queries against filename words by @RaghavChamadiya in #3180
- fix(answer): lead the keyless answer with the top retrieval file by @RaghavChamadiya in #3184
- fix(answer): trim keyless medium answers on large repos by @RaghavChamadiya in #3186
- fix(context): cap one file's reference sites so a mock-heavy test cannot flood the list by @RaghavChamadiya in #3183
- feat(graph): bind names destructured from a dynamic import() by @RaghavChamadiya in #3181
- feat(search): return the best-matching lines for prose queries by @RaghavChamadiya in #3189
- fix(doctor): join the stderr drain before building the crash detail by @Pushpak731 in #3165
- fix(context): follow a local import alias in the references edit set by @RaghavChamadiya in #3190
- fix(search): cap one file's line hits so test mocks cannot flood an identifier search by @RaghavChamadiya in #3191
- fix(search): start snippets at the page text, not its heading by @RaghavChamadiya in #3192
- feat(search): surface symbols whose name words match a prose query by @RaghavChamadiya in #3194
- feat(context): list callers through forwarding wrappers by @RaghavChamadiya in #3195
- feat(graph): record functions passed as values so registrations show as callers by @RaghavChamadiya in #3197
- fix(change-risk): trim redundant MCP response fields by @Nehant14 in #3152
- fix(mcp): don't create a stray .repowise/ when the store is missing by @inchang-ing in #3166
- fix(search): drop page_id when page_type + path rebuild it by @SatvikMishra08 in #3156
- fix(search): bound line hits when a search mixes words and identifiers by @RaghavChamadiya in #3199
- feat(answer): answer caller and trigger questions from the call graph by @RaghavChamadiya in #3196
- fix(mcp): retain fallback_targets not named in emitted answer rows (#2900) by @rishu685 in #2995
- feat(search): return files that have no wiki page by @RaghavChamadiya in #3210
- fix(search): scan the whole repo for literal and identifier line hits by @RaghavChamadiya in #3201
- feat(context): show the calling line on caller rows by @RaghavChamadiya in #3198
- feat(answer): retrieve files that have no wiki page by @RaghavChamadiya in #3214
- feat(answer): show who uses the lead file on impact questions by @RaghavChamadiya in #3212
- fix(mcp): trim get_risk card responses and move detailed owner metrics behind owners include (#3112) by @rishu685 in #3139
- fix(health): do not charge a sink in a generator or iterator closure to its caller by @Aman-goel-04 in #3003
- fix(health): name an Extract Method helper in the file's language by @chaitanya-y20 in #2895
- fix(health): exempt Java try ... fail() expected-exception idiom from swallowed_catch (#2890) by @rishu685 in #2996
- fix(security): rescan every file when the scanner version changes by @Aman-goel-04 in #3086
- fix(health): classify each leaf of a grouped Rust use statement on its own by @Aman-goel-04 in #3076
- fix(health): respect in-source # noqa suppression comments on Python except lines (#2745) by @rishu685 in #2853
- fix(ingestion): ignore TypeScript type-only imports in dependency cycle detection (#2742) by @rishu685 in #2803
- fix(health): exclude dynamic_uses hint edges from cycle detection by @Aman-goel-04 in #3077
- fix(mcp): redirect no_such_path to a renamed or split file by @Aman-goel-04 in #2922
- fix(security): ignore documented placeholder credentials by @abhinavrastogi2627 in #3179
- test(security): compare masking runtime growth by @kudala-bharani in #3203
- feat(health): promote PHP to Good tier with complexity, LCOM4, and assertion block support (#3065)… by @rishu685 in #3089
- fix(core): a test-named module pytest does not collect is not a test by @RaghavChamadiya in #3218
- fix(ingestion): index source packages named build, coverage, dist or target by @RaghavChamadiya in #3221
- feat(impacted-tests): select a subset when the index lags the change's base by @RaghavChamadiya in #3219
- feat(ingestion): link modules named by string in lazy registries by @RaghavChamadiya in #3220
- feat(impacted-tests): run tests the graph cannot see into with every subset, and --explain by @RaghavChamadiya in #3217
- feat(impacted-tests): give each runner only its own always-run tests and name the rest by @RaghavChamadiya in #3241
- fix(health): one perf plan step per call site, naming the call it batches by @RaghavChamadiya in #3250
- fix(health): gate Extract Method plans on span share, size and docstring start by @RaghavChamadiya in #3252
- fix(health): keep dormant and dead code out of Fix first and the perf queue by @RaghavChamadiya in #3253
- fix(health): mark Extract Method spans that await as async helpers by @RaghavChamadiya in #3254
- fix(health): find import cycles over runtime edges and make break_cycle advisory by @RaghavChamadiya in #3259
- fix(health): ternary dispatch chains and JSX conditionals do not nest by @RaghavChamadiya in #3278
- fix(health): name a perf step's function and mark async extractions in Fix first steps by @RaghavChamadiya in #3273
- fix(selection): wire test setup files and path-named helpers into the graph by @RaghavChamadiya in #3216
- feat(impacted-tests): scope manifest, package-init and asset triggers instead of running every test by @RaghavChamadiya in #3243
- feat(selection): narrow a conftest reached only through its imports by @RaghavChamadiya in #3262
- fix(health): keep migrations, startup, shutdown and recovery out of the perf queue by @RaghavChamadiya in #3258
- fix(actions): add tests only where no test reaches; stand history rules down on a short history by @RaghavChamadiya in #3266
- fix(refactoring): list the tests that guard a plan, not the ones that pass through a hub by @RaghavChamadiya in #3289
- fix(mcp): page fix_first and serve refactoring plans from the queue by @RaghavChamadiya in #3255
- fix(health): refuse Extract Method spans across which a closure shares a local by @RaghavChamadiya in #3274
- fix(health): keep refactoring plans within one language and name their targets by @RaghavChamadiya in #3277
- refactor(health): serve the refactoring queue through the shared queue rules by @RaghavChamadiya in #3291
- fix(refactoring): order plan step counts through the shared queue rules by @RaghavChamadiya in #3298
- refactor(test-paths): one classifier for contract extraction, keeping possible contracts by @RaghavChamadiya in #3290
- fix(health): never lead or queue a performance cause whose loop size is unmeasured by @RaghavChamadiya in #3276
- refactor(selection): move the impacted-tests collection walk into core by @RaghavChamadiya in #3292
- refactor(actions): word the Do next sentence once, in the actions view by @RaghavChamadiya in #3299
- feat(ui): lighter refactoring lede, collapsed drawer detail and Fix first open by default by @RaghavChamadiya in #3300
- perf(serving): read paths skip the schema reconcile, heavy imports and unused test lookups by @RaghavChamadiya in #3279
- refactor(health): one effort scale and shared rank helpers by @RaghavChamadiya in #3288
- feat(health): bare
repowise healthreads the stored analysis by @RaghavChamadiya in #3280 - fix(mcp): name the tests a change needs from the impacted-tests selection by @RaghavChamadiya in #3296
- fix(health): name Extract Method helpers from banners and labels, never compute_ for effects by @RaghavChamadiya in #3287
- perf(actions): store Fix first and the Do next view at index time by @RaghavChamadiya in #3311
- perf(refactoring): store plan rank at finalize and serve plan lists from SQL by @RaghavChamadiya in #3315
- docs(health): split performance into its own page and lighten code health by @RaghavChamadiya in #3264
- feat(vscode): native theme grounds, consistent names and accessible controls by @RaghavChamadiya in #3301
- feat(server): report when dead code and security analysis last ran by @RaghavChamadiya in #3303
- feat(ui): shared state primitives, neutral selected ground and thinking-orb loader by @RaghavChamadiya in #3304
- fix(health): separate all-clear, not-yet, filtered and error states across code health tabs by @RaghavChamadiya in #3308
- fix(ui): tell all-clear from not-yet, filtered and error on refactoring, impact, coupling, decisions and owners by @RaghavChamadiya in #3310
- fix(web): route loading and error states, real 404s and shared page frames by @RaghavChamadiya in #3306
- feat(chat): calm single-column chat with stage-aware progress by @RaghavChamadiya in #3313
- feat(dead-code): one figure, one list, one table by @RaghavChamadiya in #3309
- feat(vscode): shared states, orb loading and a dead code tree that knows when it ran by @RaghavChamadiya in #3314
- feat(security): lead with posture and scan freshness, findings open by default by @RaghavChamadiya in #3307
- refactor(ingestion): split the pytest edge linker into small steps by @RaghavChamadiya in #3321
- feat(refactoring): give each step of a multi-step plan its own verify by @RaghavChamadiya in #3323
- refactor(health): one eligibility module and reason vocabulary for every default queue by @RaghavChamadiya in #3328
- fix(selection): see every string an edge resolves when the index lags by @RaghavChamadiya in #3325
- feat(impacted-tests): order selected tests by likely relevance and add --prioritize by @RaghavChamadiya in #3322
- feat(ui): one share bar and one neutral palette for every proportion by @RaghavChamadiya in #3326
- feat(ui): one release notice, a scalable language switcher and a fuller not-found page by @RaghavChamadiya in #3327
- feat(refactoring): one model switch for helper naming and code drafts by @RaghavChamadiya in #3329
- feat(health): say whether an Extract Method helper is a method and what it writes by @RaghavChamadiya in #3330
- fix(server): strip credentials from the remote sent to the overview by @RaghavChamadiya in #3343
- fix(server): strip credentials from the repo url in repo responses by @RaghavChamadiya in #3346
- perf(selection): walk the test graph in memory and find namers with git grep by @RaghavChamadiya in #3340
- feat(refactoring): annotate plans with decisions, consumers, dead code and recent edits by @RaghavChamadiya in #3348
- feat(health): rank and queue performance causes by execution role by @RaghavChamadiya in #3347
- feat(health): write out an Extract Method helper's header and call by @RaghavChamadiya in #3352
- feat(core): add a forges package for parsing git remotes by @RaghavChamadiya in #3350
- refactor(server,core): resolve webhook keys and remote names through forges by @RaghavChamadiya in #3351
- fix(health): give Extract Method plans only the inputs their span uses by @RaghavChamadiya in #3357
- feat(security): detect GitLab and Azure DevOps tokens and git remote credentials by @RaghavChamadiya in #3356
- feat(impacted-tests): name a manifest only where a written path leads to it by @RaghavChamadiya in #3353
- feat(health): store each unit's queue verdict and report one count object by @RaghavChamadiya in #3354
- feat(forges): read each CI's build facts into one CiContext by @RaghavChamadiya in #3361
- refactor(server): read and scrub remotes through the forges package by @RaghavChamadiya in #3355
- fix(types): regenerate http types without dataclass docstrings by @RaghavChamadiya in #3370
- refactor(ci): derive the CI variable lists and target branch from forges.ci by @RaghavChamadiya in #3362
- feat(health): store each function's execution role and body facts by @RaghavChamadiya in #3363
- feat(refactoring): export a plan as a recipe and render its agent prompt in core by @RaghavChamadiya in #3364
- feat(health): rank work by complexity removed times reach, and share the lead with Do next by @RaghavChamadiya in #3366
- feat(health): a due Fix first item carries its first step and verify command by @RaghavChamadiya in #3369
- feat(core): read change-request numbers from commit messages per forge by @RaghavChamadiya in #3367
- refactor(refactoring): move plan hydration into persistence and split the refactoring router by @RaghavChamadiya in #3380
- fix(dataflow): skip comment nodes when picking the else arm by @SakarPaisen in #3349
- fix(health): return Extract Method values a later conditional write does not kill by @RaghavChamadiya in #3384
- refactor(health): split the analyze paths and the Fix first unit builders by @RaghavChamadiya in #3388
- fix(health): keep spawned jobs, inert call sites and bounded loops out of the perf queue by @RaghavChamadiya in #3395
- feat(health): Fix first says when its plan is a staged split by @RaghavChamadiya in #3392
- feat(refactoring): record what happened to a plan that stops being detected by @RaghavChamadiya in #3391
- fix(health): save the walk cache after a parallel health pass by @RaghavChamadiya in #3389
- feat(refactoring): staged Extract Method plans for functions one helper cannot fix by @RaghavChamadiya in #3387
- feat(git): read a commit's PR or MR number through the forges package by @RaghavChamadiya in #3368
- feat(forges): read author identity against every forge's rules by @RaghavChamadiya in #3381
- refactor(core): read author identity through the forges package by @RaghavChamadiya in #3382
- feat(update): refresh stored git history once when its rules change by @RaghavChamadiya in #3386
- feat(impacted-tests): select a manifest change's namer tests instead of every test by @RaghavChamadiya in #3379
- feat(refactoring): call an existing function when a clone site already is one by @RaghavChamadiya in #3390
- docs: document git host support and the forges package by @RaghavChamadiya in #3400
- fix(security): skip values containing shell or template expansions by @rishu685 in #3319
- fix(security): honor detect-secrets allowlist pragmas by @kocaemre in #3246
- fix(doc-drift): honor Markdown closing fence rules by @abhinavrastogi2627 in #3239
- fix(init): avoid implicit model use in scripted no-prose runs by @abhinavrastogi2627 in #3242
- fix(dead-code): treat Storybook config files as entry points by @HarshRajSinghania in #3087
- fix(branch_overlap): clarify branch count when scan is truncated by @DYNOSuprovo in #2934
- fix(cli): route decision commands to the worktree's base index (#3132) by @Aman-goel-04 in #3398
- fix(uninstall): list a configured database as a kept row (#2407) by @Aman-goel-04 in #3397
- fix(init): keep size-skip notices and progress tips out of state degraded by @Aman-goel-04 in #3272
- fix(decisions): discover numbered ADR folders at arbitrary directory depths (#3057) by @rishu685 in #3061
- feat(refactoring): render model toggle in opportunity drawer when code generation is off (#3376) by @Fire162 in #3383
- fix(graph): read python_classes from the pytest section only, accept TOML lists by @nosmile99 in #3358
- fix(test-selection): keep --prioritize order in Go runner args by @nosmile99 in #3341
- Skip POSIX permission-bit tests on Windows by @mercael91 in #3200
- fix(claude_cli): parse the verbose event array from claude -p by @inchang-ing in #3170
- fix(context): calculate days_ago from last change by @Nehant14 in #3153
- refactor(core): move the ruff formatter check into a shared module by @JikSau-D in #3159
- test(go): pin how a call through an indexed func value is captured and resolved by @ybai08 in #3146
- fix(ingestion): resolve unique ambient TypeScript types by @justonemorenight in #2999
- fix(doc-drift): resolve GitHub's suffixed anchors for repeated headings by @TheNetherWatcher in #3256
- fix(server): decode file content as UTF-8 by @sricharanreddycheruku in #3249
- fix(ui): number the performance queue from 1 by @bernalalexis-try in #3248
- fix(contracts): key symbol_index by symbol id, not bare name by @xiao115255 in #3176
- fix(persistence): ignore pgvector type warning in schema reconcile by @atharvab1902 in #3157
- fix(health): return flagged analyses in source order by @ump45nose in #3294
- fix(dataflow): a write overwritten later in a try body reaches its handler by @RaghavChamadiya in #3413
- fix(update): prune deleted files on a docs-mode update too by @RaghavChamadiya in #3412
- test(ui): open the ranking section before reading the queue position by @RaghavChamadiya in #3416
- fix(ui): show the numbers code health surfaces actually serve by @RaghavChamadiya in #3419
- fix(refactoring): refuse flat record builders, group a split's plans, name every helper by @RaghavChamadiya in #3421
- feat(health): lead Fix first with work that pays by @RaghavChamadiya in #3422
- perf(health): serve get_health lists and the overview without whole-repo work by @RaghavChamadiya in #3423
- fix(roles): read a task kept in a map on app state as fire-and-forget by @RaghavChamadiya in #3428
- feat(refactoring): stage a loop body, keep guard-narrowed TS types, flag source-text tests by @RaghavChamadiya in #3433
- fix(health): class test helpers and bundles the same on every ranked list by @RaghavChamadiya in #3429
- fix(dataflow): a Go write through a field or index of a value is a write of the variable by @ybai08 in #3418
- fix(dataflow): include Python loop else branches in CFG by @goudan789 in #3424
- fix(health): reject extractions that lose local imports by @nightcityblade in #3410
- fix(refactoring): read-only guards for flat builders, never run out of helper names by @RaghavChamadiya in #3427
- test(mcp): expect days_ago measured to the newest commit in the integration test by @RaghavChamadiya in #3442
- fix(health): keep clone detection windows within one language by @cestercian in #3414
- fix(health): refuse Java extraction spans that hold a switch-rule yield by @ump45nose in #3415
- Register the C++ def/use dialect for C so Extract Method fires by @wanjinhao1 in #3441
- fix(perf): one plan step per loop and variable for the buffer and membership fixes by @ybai08 in #3443
- fix(perf): a query written as a chain of calls is one sink, on the call that does the I/O by @ybai08 in #3425
- fix(health): a Python conditional-expression chain nests like an elif dispatch by @ShahabAhmed01 in #3338
- fix(health): measure functions defined inside another function by @ybai08 in #3405
- fix(health): ignore loops that retain every row by @nightcityblade in #3406
- test(health): nest the held-lambda fixture through its consequences by @RaghavChamadiya in #3448
- feat(dataflow): add C# def/use dataflow dialect and Extract Method support (#2893) by @rishu685 in #2919
- fix(perf): read a TS/JS import's library from its module string only by @RaghavChamadiya in #3447
- fix(refactoring): compare indentation and real parameter names when reusing a function by @RaghavChamadiya in #3459
- feat(refactoring): anchor every Extract Method stage by its first and last lines by @RaghavChamadiya in #3468
- feat(refactoring): serve long staged plans as batches to test between by @RaghavChamadiya in #3470
- fix(refactoring): refresh held plans after finalize writes their rank by @RaghavChamadiya in #3476
- fix(dataflow): give staged plan stages every value they read and write by @RaghavChamadiya in #3471
- feat(refactoring): quote the test functions that call a plan's code by @RaghavChamadiya in #3478
- feat(fix-first): quote an Extract Method step's anchors instead of its lines by @RaghavChamadiya in #3481
- feat(refactoring): rank a plan last when it leaves a function above the break-up bar by @RaghavChamadiya in #3482
- fix(dead-code): stamp Grafana plugin modules beside plugin.json as reachability roots (#3060) by @rishu685 in #3080
- feat(fix-first): say when a borrowed plan leaves a function above the break-up bar by @RaghavChamadiya in #3484
- chore: remove code nothing uses by @RaghavChamadiya in #3487
- feat(refactoring): warn when a plan changes a symbol a package exports by @RaghavChamadiya in #3485
- feat(dataflow): record error exits and keep Extract Method cuts from changing exception flow by @RaghavChamadiya in #3488
- fix(refactoring): run a JS/TS plan's tests from the package that owns them by @RaghavChamadiya in #3486
- feat(perf): say whether Go, Java, C# and Ruby perf loops grow with the data by @RaghavChamadiya in #3489
- fix(dead-code): treat a function stored by its own decorator as used by @RaghavChamadiya in #3490
- fix(dead-code): a VB.NET Module is used when its members are by @RaghavChamadiya in #3509
- test(ingestion): rebase onto the repo's own first branch, not a hard-coded master by @ybai08 in #3148
- fix(dead-code): treat files a tool config or usage line names as entry points by @RaghavChamadiya in #3508
- fix(dead-code): an export its own file uses is export-only, not dead by @RaghavChamadiya in #3510
- perf(mcp): serve one location per search_codebase row by @Aman-goel-04 in #3317
- fix(security): rescan an index whose findings predate the scanner stamp by @RaghavChamadiya in #3516
- fix(ingestion): load git indexer exports lazily by @sricharanreddycheruku in #3438
- fix: use output-directory detection across source discovery walks by @ozenyunus35 in #3454
- fix(ingestion): keep capturing attributes after a comment by @ump45nose in #3461
- fix(mcp): find a repository by any spelling of its path (#3265) by @am1rqr in #3275
- fix(communities): exclude external nodes from community membership by @Aman-goel-04 in #2611
- fix(ingestion): honor .git-blame-ignore-revs in blame ownership by @Aman-goel-04 in #3078
- fix(dataflow): a may-def adds to what reaches and kills nothing (Java, C++, Rust, C#) by @ybai08 in #3460
- fix: tombstone symbol spotlight pages when source files are removed by @ozenyunus35 in #3464
- fix: deterministic ordering of namers (issue #3297) by @Kashyap-Acharya in #3453
- fix(persistence): read HEAD through a worktree's .git pointer file by @cestercian in #3293
- fix(cli): read the local index after repository relocation by @abhinavrastogi2627 in #3240
- feat(perf): say whether Rust, Kotlin and C++ perf loops grow with the data by @RaghavChamadiya in #3515
- fix(dead-code): one gate decides whether a finding is safe to delete by @RaghavChamadiya in #3511
- fix(dead-code): analyze live with the graph update builds by @RaghavChamadiya in #3520
- fix(health): count files and findings the same way on every surface by @RaghavChamadiya in #3532
- perf(decisions): check decision evolution only against this update's evidence, concurrently by @RaghavChamadiya in #3524
- fix(health): let a function worth breaking up lead its file by @RaghavChamadiya in #3526
- fix(graph): a type imported from an external package never resolves to a repo file by name by @RaghavChamadiya in #3527
- fix(dead-code): the live run applies dynamic hints and keeps logs off stdout by @RaghavChamadiya in #3528
- fix(fix-first): drop the helper name from a title when the plan has none by @RaghavChamadiya in #3529
- fix(security): update rescans the files it changed by @RaghavChamadiya in #3530
- perf(update): scan new commits' health outside the write transaction and pick up the ones a budget skipped by @RaghavChamadiya in #3525
- fix(health): stamp the commit on rows the history refresh rescores by @RaghavChamadiya in #3531
- feat(security): the inline ignore marker also silences the stored scan by @RaghavChamadiya in #3536
- refactor(health): stamp the commit where a rescored row is built by @RaghavChamadiya in #3540
- refactor(tests): split the test-map functions this week made too complex by @RaghavChamadiya in #3548
- refactor(health): split the walker helpers this week made too complex by @RaghavChamadiya in #3546
- refactor(dataflow): split the C# and Go dialect hooks this week made too complex by @RaghavChamadiya in #3547
- refactor(refactoring): flatten the plan detectors this week made too deep by @RaghavChamadiya in #3550
- refactor(ingestion): flatten the binding and type-ref helpers this week nested too deep by @RaghavChamadiya in #3542
- refactor(core): split the helpers this week made too complex by @RaghavChamadiya in #3545
- refactor(ui): split the shared and web components this week grew by @RaghavChamadiya in #3551
- fix(health): stop counting field-less cohesion groups in explicit-receiver classes by @RaghavChamadiya in #3552
- fix(decisions): recording a decision leaves the index's commit alone by @RaghavChamadiya in #3541
- refactor(ui): split the health and refactoring components this week grew by @RaghavChamadiya in #3549
- fix(mcp): get_health(fix_id) opens the act_ ids get_overview hands out by @RaghavChamadiya in #3544
- fix(actions): judge a fresh regression by the open finding as it reads today by @RaghavChamadiya in #3543
- refactor(pipeline): lift phases out of the update and persist functions this week grew by @RaghavChamadiya in #3553
- fix(security): report a sink only where it can run by @RaghavChamadiya in #3534
- fix(perf): a read filtered by a key set is bounded by the keys by @RaghavChamadiya in #3535
- refactor(dataflow): give declared-type reading its own home by @RaghavChamadiya in #3554
- test(providers): wait on a barrier, not a sleep, in the codex concurrency tests by @RaghavChamadiya in #3556
- fix(update): re-render a wiki written before the renderer stamp by @RaghavChamadiya in #3557
- fix(update): stamp the parser at init and read a missing stamp as a change by @RaghavChamadiya in #3558
- release: v0.56.0 — agents get the line, first-class GitLab, Azure DevOps and Bitbucket, Code Health in milliseconds by @RaghavChamadiya in #3555
New Contributors
- @sammcj made their first contribution in #3093
- @tecsmurf made their first contribution in #3144
- @limitcool made their first contribution in #3129
- @inchang-ing made their first contribution in #3166
- @SatvikMishra08 made their first contribution in #3156
- @chaitanya-y20 made their first contribution in #2895
- @abhinavrastogi2627 made their first contribution in #3179
- @kudala-bharani made their first contribution in #3203
- @SakarPaisen made their first contribution in #3349
- @HarshRajSinghania made their first contribution in #3087
- @DYNOSuprovo made their first contribution in #2934
- @Fire162 made their first contribution in #3383
- @nosmile99 made their first contribution in #3358
- @TheNetherWatcher made their first contribution in #3256
- @sricharanreddycheruku made their first contribution in #3249
- @bernalalexis-try made their first contribution in #3248
- @xiao115255 made their first contribution in #3176
- @atharvab1902 made their first contribution in #3157
- @ump45nose made their first contribution in #3294
- @goudan789 made their first contribution in #3424
- @cestercian made their first contribution in #3414
- @ShahabAhmed01 made their first contribution in #3338
- @ozenyunus35 made their first contribution in #3454
- @am1rqr made their first contribution in #3275
- @Kashyap-Acharya made their first contribution in #3453
Full Changelog: v0.55.0...v0.56.0