Repository navigation
What's Changed
- fix(cli): emit error key on missing id in decision show json (#5046) by @ANO3457 in #5067
- fix(test_reach): avoid quadratic sibling test ownership matching by @mvanhorn in #5300
- fix(cobol): parse a doubled quote inside a double-quoted literal by @canblmz1 in #4490
- fix(decisions): align comment mining token budget by @PranavSood06 in #5194
- fix(core): recognize Ragel Java output as generated by @Pratham2511 in #4809
- fix(health): use finding judged severity in Extract Method worthiness gate (#4148) by @rishu685 in #5252
- fix(ingestion): resolve Kotlin bare require and check calls against class declarations (#4968) by @rishu685 in #5254
- fix(ingestion): keep C# awaited call assignments followed by ConfigureAwait (#4971) by @rishu685 in #5256
- fix(health): count match-arm guards, Rust if-let chains and exclude Go range (#4791) by @rishu685 in #5257
- feat(external-systems): link Java/Kotlin imports to Maven coordinates by @Aman-goel-04 in #4601
- fix(dead-code): rescue Swift files whose top-level func or operator is used (#3857) by @Aman-goel-04 in #4151
- fix(server): count job progress per phase so concurrent phases stay coherent by @jgt87 in #4740
- fix(health): measure named arrow functions as units and drop nested NLOC by @jgt87 in #4619
- fix(server): onboarding targets are production code files; template pages are not documentation (#4567) by @Aman-goel-04 in #4596
- fix(workspace): keep a Go call to a service's root path as a consumer by @Aman-goel-04 in #4595
- fix(workspace): match a concrete path segment to a route {param} by @Aman-goel-04 in #4734
- feat(mcp): report lines_total and note count on empty omission ref query (#4998) by @left-big-toe-of-oppenheimer in #5018
- feat(plugins): add a Cursor plugin for the Repowise MCP server by @RaghavChamadiya in #5312
- chore(registry): list the hosted MCP endpoint in server.json by @RaghavChamadiya in #5311
- fix(update): bind stage-resolved state types by @HengYangDS in #5328
- feat(embeddings): support Gemini Embedding 2 retrieval by @sera527 in #5104
- fix(cli): report missing lancedb in doctor when a real embedder is configured by @phatloi0010 in #5236
- fix(cli): fail update when sync base commit is unreachable in git history by @phatloi0010 in #5238
- fix(doctor): flag missing member state.json in workspace --repair by @AryanSingh2029 in #5245
- fix(coordinator): stop counting tombstones as pages in the drift report by @2233admin in #5289
- fix(plugins): align pre-modification skill name with directory name and enforce name/dir match by @Hardik01363 in #5323
- fix(decisions): merge into a decision confirmed with evidence by @nazarli-shabnam in #5343
- fix(cli): reject deterministic onboarding pages on generate --page (#5320) by @ANO3457 in #5321
- fix(mcp): add NO_HITS_RECOVERY_HINT to empty search_codebase concept replies by @Asymtode712 in #5007
- feat(mcp): keep a local tool latency log and show p50/p90 in status by @Asymtode712 in #5022
- feat(workspace): read Dapr pub/sub topics in Java, JS, Python and Go by @thymeed in #4806
- fix(gemini): include thinking tokens in output cost by @Vamsi-2581 in #5165
- fix(init): record decision mining cost in llm_costs and the init cost line by @RagedPanda in #5174
- fix(java): bind a static import to a method the named type inherits by @macholul in #5190
- fix(ingestion): treat method type variable as type parameter even when repo class shares name (#4972) by @karnavagarwal in #5260
- test(cli): restore embedder environment after serve seeding by @HengYangDS in #5352
- perf(update): patch the graph for documentation edits, adds and removals by @RaghavChamadiya in #5282
- perf(graph): cache per-file framework scans across updates by @RaghavChamadiya in #4894
- perf(update): patch the graph when source files are added, removed or change surface by @RaghavChamadiya in #5374
- perf(graph): resolve each TS file's imports once per framework pass by @RaghavChamadiya in #5375
- fix(update): make an update write the same store as a fresh init by @RaghavChamadiya in #5387
- fix(workspace): close every repository index when closing is cancelled by @jsolemd in #5386
- feat(update): refresh Git history without rebuilding docs by @HengYangDS in #5329
- test(distill): isolate synchronous pricing transcript scans by @HengYangDS in #5355
- fix(update): refresh knowledge-graph entries for changed files and match init's commit coverage by @RaghavChamadiya in #5395
- perf(update): patch the graph when a doc is added or removed beside a same-stem file by @RaghavChamadiya in #5396
- fix(decisions): stop supersede aliasing the old id to its successor by @nightious in #5332
- fix(ingestion): read Astro <script src> and as imports by @nightious in #4720
- ci: stage Apex and COBOL grammars before the unit tests by @RaghavChamadiya in #5400
- fix(decisions): delete the stale supersede pointers older versions left by @nightious in #5392
- fix(mcp): serve an indexed non-member beside the workspace members as its own repo by @nightious in #5336
- fix: retry failed decision-mining sources from their own range by @msranjana in #5096
- fix(embedding): send the declared width to OpenRouter by @jgt87 in #5383
- perf(update): patch the graph for config edits that cannot change it by @RaghavChamadiya in #5397
- fix(reindex,doctor): keep tombstoned pages out of reindex and coordinator drift by @ggiannotti in #3978
- fix(decisions): apply folded keepers and skip superseded wording on import by @nightious in #5393
- docs(plugins): list community plugins, starting with the MarkItDown PDF extractor by @RaghavChamadiya in #5398
- feat(persistence): apply plugin storage revisions after the core schema by @jsolemd in #5391
- fix(decisions): list reaffirmed entries in the import summary by @nightious in #5394
- fix(grammars): retry transient grammar downloads and report the ones that fail by @RaghavChamadiya in #5401
- perf(ingestion): probe tsconfig alias candidates without a resolve per path by @RaghavChamadiya in #5403
- perf(git): reuse cached commit records by sha so updates diff only new commits by @RaghavChamadiya in #5404
- perf(update): keep files with no grammar from forcing a full graph rebuild by @RaghavChamadiya in #5405
- perf(update): stop re-scanning commits that store no commit-health row by @RaghavChamadiya in #5406
- perf(update): splice duplication in process and batch changed graph rows by @RaghavChamadiya in #5407
- test: make the post-commit hook fake install write atomically by @RaghavChamadiya in #5425
- fix(health): serve C++ health findings without the preview label by @RaghavChamadiya in #5447
- fix(plugins): say which files --scope production leaves out by @RaghavChamadiya in #5450
- fix(health): price Fix first gains with the hidden findings a file still counts by @RaghavChamadiya in #5453
- test(health): pin health metrics for C, Dart, Scala, Ruby, PHP, F#, ObjC, Razor and Vue/Svelte by @RaghavChamadiya in #5454
- fix(health): do not judge Rust trait impls as god classes by @RaghavChamadiya in #5443
- fix(health): stop calling empty handlers for expected Python exceptions swallowed by @RaghavChamadiya in #5430
- fix(health): C and C++ pointers, buffers and SAL annotations are not primitive parameters by @RaghavChamadiya in #5427
- fix(health): open no nesting level for a Swift guard statement by @RaghavChamadiya in #5439
- fix(health): say what complex_method measures, not that a function is too complex by @RaghavChamadiya in #5444
- fix(health): keep import-like headers out of clone hashing for Ruby, shell, Kotlin, C# and PHP by @RaghavChamadiya in #5458
- fix(health): stop flagging except Exception handlers that log the failure by @RaghavChamadiya in #5431
- fix(health): read a case arm's condition from its label, not its body by @RaghavChamadiya in #5457
- feat(health): let a marker be advisory for one language by @RaghavChamadiya in #5436
- fix(health): count multi-line string continuation lines as data in large_method by @RaghavChamadiya in #5435
- fix(health): read PHP parameter types and hold untyped JavaScript signatures to seven parameters by @RaghavChamadiya in #5448
- fix(health): keep a negated list of flags or one subject flat in complex_conditional by @RaghavChamadiya in #5452
- fix(health): stop flagging Rust panics in main, unshipped code and on literal inputs by @RaghavChamadiya in #5433
- feat(health): list cold-path loop perf markers without scoring them by @RaghavChamadiya in #5434
- fix(health): read Swift parameter types and treat Cocoa callbacks as fixed signatures by @RaghavChamadiya in #5459
- fix(health): do not judge Ruby modules without initialize as god classes by @RaghavChamadiya in #5446
- fix(health): rest, keyword and Dart named parameters in primitive_obsession by @RaghavChamadiya in #5445
- fix(health): count a switch's simple arms once and its default arm never by @RaghavChamadiya in #5455
- fix(ingestion): stop linking C and C++ function-pointer hints to unreachable definitions by @RaghavChamadiya in #5449
- fix(health): count a run of error guards once in the judged CCN by @RaghavChamadiya in #5428
- fix(health): stop counting Scala DSL and Pascal bitwise and/or as decisions by @RaghavChamadiya in #5429
- fix(health): count F# && and || so complex_conditional can fire by @RaghavChamadiya in #5437
- fix(health): read dispatch subjects through predicate calls and type tests by @RaghavChamadiya in #5471
- fix(health): stop flagging Go strconv fallbacks and blanked writes as swallowed errors by @RaghavChamadiya in #5432
- fix(health): count literal table rows as data in large_method by @RaghavChamadiya in #5441
- fix(health): stop counting #if and #elif conditions as runtime branches by @RaghavChamadiya in #5461
- fix(origin): read the test-tree language off the extension for a path-only caller by @RaghavChamadiya in #5451
- fix(health): hold untyped Vue and Svelte script signatures to the JavaScript threshold by @RaghavChamadiya in #5456
- fix(health): JVM signatures a framework or the compiler owns are not long parameter lists by @RaghavChamadiya in #5440
- fix(health): count SwiftUI, Compose and Flutter view trees as markup in large_method by @RaghavChamadiya in #5442
- feat(health): make low-precision markers advisory per language by @RaghavChamadiya in #5463
- fix(health): give Rust, Go, Ruby and PHP constructors their parameter grace by @RaghavChamadiya in #5438
- fix(health): count a run of guarded field copies once in the judged CCN by @RaghavChamadiya in #5464
- fix(health): methods a same-file interface, trait or protocol declares keep its signature by @RaghavChamadiya in #5460
- fix(health): count switch arms that only return a literal as data in large_method by @RaghavChamadiya in #5466
- fix(health): count a run of plain early-exit guards once in the judged CCN by @RaghavChamadiya in #5462
- fix(health): count builder chain settings with literal arguments as data in large_method by @RaghavChamadiya in #5468
- fix(health): count a run of optional setters once in the judged CCN by @RaghavChamadiya in #5467
- fix(augment): avoid double terminal punctuation in edit decision notice by @SKC999 in #5381
- fix(cli): cleanup expired augment dedup markers in temp dir by @omseervi098 in #5376
- fix(hooks): run the stale-wiki check after pull, merge, rebase and cherry-pick on Claude Code by @DaniyalMughal1 in #5382
- feat(cli): report blockers and next confirmation command on decision add json (#5045) by @ANO3457 in #5134
- get_why dashboard: say why each stale decision is stale by @mercael91 in #5012
- feat(decisions): an agent's decision governs once its commit lands by @RaghavChamadiya in #5499
- fix: treat stale hosted session as doctor warning by @ZhangDT-sky in #5237
- fix(cli): report live git coverage in status by @Vamsi-2581 in #5224
- fix(doctor): warn when index data is stale or git tables are empty by @RagedPanda in #5225
- fix(cli): consult repo .env during embedder choice resolution (#5326) by @karnavagarwal in #5347
- fix(mcp): report timed-out branch overlap scans and skip payload caching by @Rohan-Dedhia in #5356
- fix(cli): recover from corrupt state json by @ZhangDT-sky in #5274
- fix(mcp): resolve decision id prefixes and alias prefixes in get_why (#5335) by @karnavagarwal in #5346
- fix(core): respect repo pinned embedding_model in embedder_kwargs and resolve (#5324) by @ANO3457 in #5417
- fix(answer): read text files over 2 MB in the literal line scan by @RaghavChamadiya in #5281
- feat(health): make low_cohesion advisory, and dry_violation and error_handling outside TypeScript and Python by @RaghavChamadiya in #5426
- feat(decisions): mined records are background; update mines only on request by @RaghavChamadiya in #5502
- feat(hooks): read the main checkout's index from a git worktree that has none by @RaghavChamadiya in #5510
- feat(decisions): get_why on a path leads with constraints, history on request by @RaghavChamadiya in #5504
- feat(decisions): get_answer reads the decisions in force for why questions by @RaghavChamadiya in #5505
- feat(decisions): an agent's discovery pass over the background records on the busiest files by @RaghavChamadiya in #5506
- feat(decisions): optional sync with repowise.dev, and keep decisions.yaml current by @RaghavChamadiya in #5501
- feat(decisions): a digest page with pin, veto and edit, and a recent section in status by @RaghavChamadiya in #5509
- feat(decisions): spend decision tokens only where a decision governs by @RaghavChamadiya in #5507
- feat(decisions): ask an agent to settle the decisions its commit touches, off by default by @RaghavChamadiya in #5508
- feat(decisions): count how often agents are shown each decision by @RaghavChamadiya in #5511
- feat(decisions): one switch for the layer, and docs for how it works by @RaghavChamadiya in #5517
- feat(settings): one registry for every setting by @RaghavChamadiya in #5519
- docs(config): generate CONFIG.md's key and variable tables from the settings registry by @RaghavChamadiya in #5520
- feat(settings): repowise config list, get, explain, set and reset by @RaghavChamadiya in #5521
- perf(persistence): add repository predicate on joined graph_nodes in tests_in_files (#5342) by @karnavagarwal in #5345
- fix(persistence): refresh PostgreSQL planner statistics after bulk writes by @Nani-2007-code in #5360
- fix(health): class llparse-generated C output as generated by @munjikesh in #5500
- fix(ui): keep the page still while the job log follows new lines by @jgt87 in #5470
- fix(health): skip go_swallow when the blanked last result is a bool (strings.Cut, runtime.Caller) by @sarankumar1325 in #5486
- fix(origin): classify root .repos/ clones as vendored by @bfs2021 in #5337
- perf(ingestion): find preceding docstrings with prev_sibling by @pramukhbhushan in #5344
- fix(tests): expect init to refuse a commit limit above the maximum by @RaghavChamadiya in #5535
- fix(persistence): add opt-in Postgres keepalive and command timeout by @Aschenbath in #5390
- fix(pipeline): mark jobs left running by a dead run as failed on the next start by @RagedPanda in #5349
- feat(ci): post the gate summary as one GitLab merge-request note by @RaghavChamadiya in #5527
- feat(server): fetch and fast-forward a server-owned checkout before each sync by @RaghavChamadiya in #5528
- fix(claude-cli): say why pages failed when the CLI is not signed in by @RaghavChamadiya in #5532
- fix(cpp): stop CMake variable expansion from doubling self-appending values by @RaghavChamadiya in #5533
- perf(mcp): answer the first tool call without waiting on unused work by @RaghavChamadiya in #5537
- feat(scale): full git history, a complete skipped-file list and a large-monorepo guide by @RaghavChamadiya in #5529
- feat(mcp): fact row and direct test links on symbol cards, class lookups as member signatures by @RaghavChamadiya in #5536
- feat(mcp): serve every edit site of a symbol as line numbers per file by @RaghavChamadiya in #5538
- fix(doctor): report index freshness and a stuck update lock by @RagedPanda in #5239
- fix(update): read stored health data from a configured database by @burntcookiedough in #5399
- fix(costs): group daily costs on SQLite and PostgreSQL by @Yushu-Li in #5223
- fix(persistence): serialize schema creation across processes on PostgreSQL by @RaghavChamadiya in #5542
- feat(mcp): give every in-band tool error a reason, and stop filing deliberate exits as faults by @RaghavChamadiya in #5541
- feat(settings): tell agents where every setting lives by @RaghavChamadiya in #5522
- feat(settings): one settings page for every setting by @RaghavChamadiya in #5524
- feat(mcp): get_answer reaches Markdown documents through the live line scan by @RaghavChamadiya in #5539
- feat(settings): suggest the settings that fit this repo by @RaghavChamadiya in #5523
- feat(settings): suggest commit window, excludes and file pages for large repos by @RaghavChamadiya in #5549
- fix(health): health check classifies generated files with code_origin by @RaghavChamadiya in #5551
- feat(mcp): serve a workspace from one configured database by @RaghavChamadiya in #5555
- feat(doctor): check every setting against the settings registry by @RaghavChamadiya in #5550
- fix(health): widen performance_opportunities.cost_proof so PostgreSQL stores background_unproven by @RaghavChamadiya in #5556
- perf(test-selection): walk an owner-package scope as one unit by @RaghavChamadiya in #5554
- docs(scale): add the ClickHouse full-history row to the large monorepo sizing table by @RaghavChamadiya in #5557
- fix(update): keep the graph snapshot when a file has never parsed by @RaghavChamadiya in #5558
- fix(cli): ask reads the other workspace repos, as the MCP tool does by @RaghavChamadiya in #5559
- feat(cli): set up hosted Repowise from the terminal by @RaghavChamadiya in #5553
- fix(persistence): rank git percentiles once on PostgreSQL instead of once per row by @RaghavChamadiya in #5560
- perf(persistence): analyze only stale tables on PostgreSQL after a write by @RaghavChamadiya in #5561
- fix(search): serve every repo's line hits for repo="all" by @RaghavChamadiya in #5562
- feat(answer): a ticket asked about by its key serves its opening lines by @RaghavChamadiya in #5563
- refactor(review): drop the pull request change kind no server lists by @RaghavChamadiya in #5570
- fix(review): severity in words, one status line per outcome, and an axe check by @RaghavChamadiya in #5571
- feat(review): score and select tests for a listed change with the risk engine by @RaghavChamadiya in #5572
- perf(git): read deep history regions in parallel and bound git's pack memory by @RaghavChamadiya in #5574
- perf(update): reuse the fix walk and community partitions an earlier run computed by @RaghavChamadiya in #5575
- perf(health): walk files in spawn workers instead of threads by @RaghavChamadiya in #5576
- feat(review): lead the Review page with the verdict, the change risk and what to check by @RaghavChamadiya in #5579
- perf(update): patch the graph for C and C++ edits instead of rebuilding it by @RaghavChamadiya in #5582
- feat(review): the Review page as Markdown for coding agents by @RaghavChamadiya in #5568
- fix(update): keep the graph snapshot when an unparsed file lost no rows by @RaghavChamadiya in #5585
- perf(health): walk an update's cache misses in spawn workers by @RaghavChamadiya in #5584
- feat(review): open a merge or pull request by number, pinned to its commits by @RaghavChamadiya in #5578
- fix(answer): risk-of-change questions no longer take the data-shape shortcut by @RaghavChamadiya in #5606
- feat(overview): give no-prose indexes a real summary and answer an unindexed repo by @RaghavChamadiya in #5591
- fix(health): list five findings per targeted call by default, and stop leaking internals by @RaghavChamadiya in #5600
- perf(update): run each graph warmup once per context and scan spelled names faster by @RaghavChamadiya in #5604
- perf(update): rescan only changed C and C++ files for dynamic hints by @RaghavChamadiya in #5583
- feat(upgrade): name a signed-in Claude Code plan in the one keyless upgrade line by @RaghavChamadiya in #5598
- fix(mcp): drop what every response repeats but no agent acts on by @RaghavChamadiya in #5595
- feat(telemetry): report index mode, provider kind, stage timings and outcomes on tool calls, init and generate by @RaghavChamadiya in #5587
- feat(mcp): list the core tools to clients that load every schema up front by @RaghavChamadiya in #5589
- feat(editor-files): lead the agent block with one call-first line and hold it to a budget by @RaghavChamadiya in #5586
- perf(review): page the files a change reaches and keep its review per commit by @RaghavChamadiya in #5580
- feat(search): read grep alternations and regexes as written, and say once when keyless rows are keyword matches by @RaghavChamadiya in #5592
- feat(generate): use a signed-in agent CLI when no provider is set, and save the provider once it writes a page by @RaghavChamadiya in #5599
- fix(upgrade): time the upgrade line by every call generate makes by @RaghavChamadiya in #5610
- fix(agents): point Codex prompts at tools Codex is listed by @RaghavChamadiya in #5611
- fix(answer): give the page digest its own slot in the synthesis excerpt by @RaghavChamadiya in #5594
- perf(answer): stop get_answer waiting on episode git queries, keep keyless replies by @RaghavChamadiya in #5605
- perf(update): cheaper render, doc drift, traverse and dead-code stages on a small update by @RaghavChamadiya in #5609
- perf(update): keep the production file partition when only test or example files change by @RaghavChamadiya in #5607
- fix(editor-files): name only the tools an AGENTS.md reader's client is listed by @RaghavChamadiya in #5608
- feat(plugin): list only what the agent acts on, and say only what is new at session start by @RaghavChamadiya in #5590
- fix(agents): count only a Claude Code plugin that loads in this repo by @RaghavChamadiya in #5614
- fix(agents): point Codex skills at tools Codex is listed by @RaghavChamadiya in #5612
- perf(dead-code): keep each file's scanned tokens between runs by @RaghavChamadiya in #5613
- fix(onboarding): tell each agent what it is listed, and name the plan route in the model sheet by @RaghavChamadiya in #5615
- fix(cli): preserve saved file page cap during refresh by @HengYangDS in #5488
- fix(cli): record completed full-upgrade inputs by @HengYangDS in #5503
- fix(doc-drift): resolve a Markdown link relative to its document (#5473) by @nightious in #5495
- fix(graph): keep co_changes out of the server's coupling counts (#5472) by @nightious in #5496
- fix(graph): keep co_changes out of decision centrality, the --test-run rank and the cascade (#5472) by @nightious in #5497
- feat(ingestion): declare the documents edge type and filter it from code analyses (#5418) by @nightious in #5498
- feat(ingestion): emit documents edges from Markdown (#5418) by @nightious in #5465
- feat(update): make update --full leave nothing stale on a full index by @RaghavChamadiya in #5617
- perf(mcp): lean search lines and one keyless get_answer shape by @RaghavChamadiya in #5616
- feat(mcp): serve the call path around a named symbol on keyless flow questions by @RaghavChamadiya in #5620
- fix(communities): restore the file partition cache key after #5498 by @RaghavChamadiya in #5623
- fix(update): ensure api_contract pages are tombstoned and covered by tests by @rishu685 in #5543
- fix(security): ignore lowercase reference paths in credential value filter by @rishu685 in #5546
- fix(code_origin): detect vendored JS libraries under resources/ directories by @rishu685 in #5545
- fix(health): recover Razor @code method start_line after attributed properties by @rishu685 in #5544
- fix(perf): implement IterableSources loop-source reader for Dart by @rishu685 in #5547
- fix(ingestion): type Kotlin destructured locals from componentN() (#4847) by @Aman-goel-04 in #5295
- fix(dead-code): root Celery autodiscover modules and Airflow DAG files (#4467) by @Aman-goel-04 in #5297
- feat(workspace): read Python f-string calls, imported clients, base_url (#4516) by @Aman-goel-04 in #5298
- feat(workspace): read DRF router and aiohttp routes as providers (#4516) by @Aman-goel-04 in #5299
- fix(pipeline): ignore deleted files when superseding module pages (#4903) by @Aman-goel-04 in #5296
- fix(health): detect swallowed_catch in Ruby, Swift, Dart and Scala (#4793) by @Aman-goel-04 in #4832
- fix(init): include hotspots in the generation plan by @gelatoni-xh in #5388
- fix(health): read F# type names in class findings by @laozhej in #5494
- fix(health): stop measuring F# module and class values as functions by @tridev-tej in #5489
- fix(dead-code): read flit and uv_build modules as published packages by @shounakjoshi88-a11y in #5423
- fix(health): count Objective-C method selector parameters by @sarankumar1325 in #5490
- fix(health): count C++ out-of-line method definitions toward class (#4789) by @rishu685 in #5258
- fix(cli): impacted-tests --format list says "run every test" in one line by @RaghavChamadiya in #5619
- fix(decisions): guard imports with per-entry base tokens by @Aschenbath in #5419
- fix(pipeline): retire module pages the plan no longer yields (#4903) by @Aman-goel-04 in #5302
- fix(persist): commit one domain at a time in persist_result (#5338, slice 1) by @raphaelbahat in #5564
- fix(init): hold the update lock as well as the init marker (#5512) by @raphaelbahat in #5593
- perf(cli): faster symbol/path search, symbol and context by @RaghavChamadiya in #5618
- fix(analysis): handle staged submodule index specs in cat_file_batch (#5304) by @rishu685 in #5305
- fix(cli): live reads use the served checkout, not the stored path by @RaghavChamadiya in #5621
- fix(mcp): server instructions name only tools the client is served by @RaghavChamadiya in #5622
- refactor(analysis): make the helpers published_packages.py imports public by @athena2250 in #5373
- read Temporal task queues as worker and client contracts by @Aman-goel-04 in #4730
- fix(ingestion): resolve repeated methods in call chains without line-key collision (#4849) by @rishu685 in #5255
- feat(ingestion): parse source files between 2 MB and 8 MB serially (#5280) by @rishu685 in #5294
- fix(dead-code): qualify Swift files used by unindexed sources by @Aschenbath in #5290
- feat(workspace): read Redis streams, and Redis pub/sub in Go, Java and .NET by @Aman-goel-04 in #4834
- fix(ingestion): bind bare calls in Kotlin extensions to the receiver's members first by @Aman-goel-04 in #4867
- feat(mcp): opt-in mcp.always_load keeps the core read tools loaded in Claude Code by @RaghavChamadiya in #5624
- fix(mcp): say the tests to run are listed likeliest to fail first by @RaghavChamadiya in #5625
- fix(graph): let the parse own an edited file's containment edges on patch by @RaghavChamadiya in #5411
- fix(update): keep an update with no new commit a no-op when the last run left pages stale by @RaghavChamadiya in #5581
- fix(mcp): references are not complete when a module object may hide a call by @RaghavChamadiya in #5632
- chore(deps): bump litellm to 1.100.5 for GHSA-7hp6-4w63-5g45 by @RaghavChamadiya in #5630
- feat(core): list the .repowise files an update reuses by @RaghavChamadiya in #5631
- fix(graph): keep seeded edges out of the type-ref defined-name index by @RaghavChamadiya in #5409
- fix(tests): wait for the Undo button to re-enable after a refused undo by @RaghavChamadiya in #5251
- fix(web): keep the Code Health view on screen when a Fix first item is triaged by @deven1003 in #5552
- fix(ingestion): exclude TypeScript interface and type properties from variable declarations (#5318) by @rishu685 in #5319
- fix(update): re-score on the first update after an upgrade by @RaghavChamadiya in #5638
- fix(update): keep one commit-health drain waiting per repo, with a hard time cap by @RaghavChamadiya in #5639
- fix(search): keep the configured embedder and per-repo fulltext on multi-repo servers by @RaghavChamadiya in #5640
- test: run the web suite in CI and skip COBOL tests at run time by @RaghavChamadiya in #5641
- fix(status): count Git coverage over the same files as its denominator by @RaghavChamadiya in #5633
- fix(mcp): list the single-repo tools when the server serves a single repo by @RaghavChamadiya in #5635
- fix(mcp): answer a bad status or plan id in set_finding_status as an argument error by @RaghavChamadiya in #5636
- fix(cli): show a path's background records and history pointer in repowise why by @RaghavChamadiya in #5637
- fix(generation): regenerating repo-wide pages no longer re-stales the others by @ugoenyioha in #5515
- fix(tour): open on the primary README, not a translation by @ugoenyioha in #5516
- fix(health): count F# elif arms in cyclomatic complexity by @sarankumar1325 in #5487
- fix(cursor): pin the afterFileEdit capture hook to repowise-augment (#5364) by @Aditya-XR in #5548
- fix(core): treat docs_src/ and root benchmark/ as support paths (#5369) by @ANO3457 in #5389
- test: make test_code_health_read_failure_degrades_to_an_empty_block independent of import order by @HarshRajSinghania in #5372
- fix(mcp): load numpy before the stdio transport reads stdin, and bound the keyless upgrade line by @RaghavChamadiya in #5647
- fix(update): keep measured symbol complexity on files the update does not analyse by @RaghavChamadiya in #5649
- fix(mcp): send each client the instructions for the tools it is listed by @RaghavChamadiya in #5644
- fix(init): plan the pages generation writes by @RaghavChamadiya in #5646
- perf(answer): ask each episode check once per get_answer call by @RaghavChamadiya in #5650
- fix(hooks): Codex hook text names only what the tools Codex is listed are for by @RaghavChamadiya in #5651
- perf(mcp): answer get_change_risk on a range past the file ceiling without the expensive work by @RaghavChamadiya in #5652
- fix(test-selection): stop a timed-out selection between its graph walks by @RaghavChamadiya in #5653
- fix(update): keep decorator edges when one decorated file is reconciled by @RaghavChamadiya in #5661
- release: v0.61.0, agents that carry less and get more, decisions that govern, every setting in one place by @RaghavChamadiya in #5662
New Contributors
- @PranavSood06 made their first contribution in #5194
- @sera527 made their first contribution in #5104
- @phatloi0010 made their first contribution in #5236
- @AryanSingh2029 made their first contribution in #5245
- @2233admin made their first contribution in #5289
- @Hardik01363 made their first contribution in #5323
- @nazarli-shabnam made their first contribution in #5343
- @karnavagarwal made their first contribution in #5260
- @ggiannotti made their first contribution in #3978
- @SKC999 made their first contribution in #5381
- @omseervi098 made their first contribution in #5376
- @DaniyalMughal1 made their first contribution in #5382
- @Rohan-Dedhia made their first contribution in #5356
- @Nani-2007-code made their first contribution in #5360
- @munjikesh made their first contribution in #5500
- @sarankumar1325 made their first contribution in #5486
- @pramukhbhushan made their first contribution in #5344
- @burntcookiedough made their first contribution in #5399
- @gelatoni-xh made their first contribution in #5388
- @laozhej made their first contribution in #5494
- @tridev-tej made their first contribution in #5489
- @shounakjoshi88-a11y made their first contribution in #5423
- @raphaelbahat made their first contribution in #5564
- @athena2250 made their first contribution in #5373
- @ugoenyioha made their first contribution in #5515
- @Aditya-XR made their first contribution in #5548
Full Changelog: v0.60.1...v0.61.0