Skip to content

Releases: gregordadera/aicb-roslyn-mcp

AICB 0.5.465.11

Choose a tag to compare

@gregordadera gregordadera released this 30 Sep 20:14

The .NET tool is now the NuGet package aicb-roslyn-mcp, and every tool applies a solution's configuration in the same order. Users of the .NET tool switch their installation once (below). The rest concerns the MCP server and the aicb CLI. No database change; saved snapshots stay valid.

The .NET tool is now aicb-roslyn-mcp

  • The MCP server and CLI are published on nuget.org as aicb-roslyn-mcp; up to 0.5.465.1 the package was called AIContextBuilder. The command stays aicb, and the MCP Registry entry io.github.gregordadera/aicb-roslyn-mcp names the new package.
  • Switching an existing installation: dotnet tool update does not cross the rename. Run dotnet tool uninstall -g AIContextBuilder, then dotnet tool install -g aicb-roslyn-mcp. An MCP client configuration that starts the aicb command needs no change; one that starts the package itself with dnx AIContextBuilder needs the new name.
  • The package AIContextBuilder stays on nuget.org with its versions, is marked deprecated with a pointer to the new name, and receives no further versions. The Windows installer removes an existing .NET tool under either name when you let it; Winget keeps the identifier GregorDadera.AIContextBuilder.

One order for a solution's configuration

  • analyze_solution, solution_config_status, check_solution_config_drift, aicb analyze and the memory tools resolve a solution's namespace exclusions, layer profile, test profile and analysis scope in one order: an explicit parameter, then the configuration database (a choice made for this solution, then the app-wide default), then the .aicb.json committed next to the solution, then a built-in default.
  • A built-in default no longer overrides a committed .aicb.json. Before, analyze_solution could analyze with the built-in exclusion list while solution_config_status named the .aicb.json as the source. A choice made for one solution still wins over the .aicb.json.
  • remember_codebase, recall_codebase and refresh_remembered now apply the configuration database and the test profile like analyze_solution, so a remembered session shows the same dependencies as an analyzed one.
  • solution_config_status and check_solution_config_drift report the configuration in force, with the new source value built-in for the built-in exclusion list, and asking them no longer registers the solution in the configuration database. aicb analyze uses the test profile of a .aicb.json and says so on stderr.

If your MCP client caches tool descriptions, reconnect it once - the descriptions of analyze_solution, solution_config_status, check_solution_config_drift, remember_codebase and recall_codebase changed.

Details: CHANGELOG. The complete manuals are under docs/manual/; they describe product state 0.5.464.43, with the licensing chapter current for EULA v0.6 and the installation commands current for this release.

Install - pick one per machine

You use Install
Windows with the desktop app AIContextBuilder-Setup-0.5.465.11.exe - desktop app + CLI/MCP server (administrator rights; puts aicb on PATH). Portable alternative without administrator rights: AIContextBuilder-0.5.465.11-win-x64.zip - unzip and run gui\aicb-ui.exe; cli\aicb.exe is the CLI/MCP server
Linux, macOS, CI, or no desktop app the .NET tool from nuget.org: dotnet tool install -g aicb-roslyn-mcp (needs the .NET 8 SDK - or, without .NET 8, the SDK of the next newer .NET on the machine)

Already on the .NET tool: dotnet tool uninstall -g AIContextBuilder, then dotnet tool install -g aicb-roslyn-mcp (once; later updates are dotnet tool update -g aicb-roslyn-mcp). Already on the installer: run the new installer over the old one. In a container: the repository carries a Dockerfile that installs the package and serves MCP over stdio.

aicb-roslyn-mcp.0.5.465.11.nupkg is the identical .NET tool package for machines without access to nuget.org: put it into an otherwise empty folder and add --add-source ./that-folder.

The Windows downloads bring their own .NET runtime. Analyzing a solution still needs MSBuild on the machine - a .NET SDK or Visual Studio.

Not code-signed yet: Windows SmartScreen shows "Windows protected your PC" - choose More info -> Run anyway. Verify your download against the checksums below (Get-FileHash <file> -Algorithm SHA256).

New here? Start with Getting started.

License

Free for individuals, education, and organizations below 100 employees, EUR 10 million turnover and 21 developers - see Licensing in plain words. Commercial licenses start at EUR 25 per licensed developer per month. No telemetry, no license server; analysis runs entirely on your machine.

SHA-256

527d865e9bb86ec4cfbafcd79e54e240a20980af2f7b79077c8e5087a98b7787 *AIContextBuilder-Setup-0.5.465.11.exe
f344b9025ca6d8f3aa26642dbcb804ccfa7e3f4134cf623782275b5be3fb34b0 *AIContextBuilder-0.5.465.11-win-x64.zip
e53d9cb7e375ea046319e16cfe9d990d02c1b75ec53bedb9a6e5033246cef186 *aicb-roslyn-mcp.0.5.465.11.nupkg

AICB 0.5.465.1

Choose a tag to compare

@gregordadera gregordadera released this 29 Sep 21:59

A new repository name, a listing as an MCP server on nuget.org, a .NET tool that starts without .NET 8, and calls through interfaces credited to the method that implements them. The repository is now gregordadera/aicb-roslyn-mcp; every old link keeps working. The rest concerns the MCP server and the aicb CLI. No database change; saved snapshots stay valid.

New repository address and MCP Registry name

  • The repository moved to github.com/gregordadera/aicb-roslyn-mcp (it was github.com/gregordadera/AICB). GitHub forwards every old link, clone URL and release download. The nuget.org package AIContextBuilder and the aicb command keep their names.
  • The MCP Registry lists the server as io.github.gregordadera/aicb-roslyn-mcp; the previous entry io.github.gregordadera/aicb is marked deprecated. Clients that already run the server need no change.
  • The NuGet package is listed as an MCP server on nuget.org: it carries the MCP server package type and packs server.json, from which nuget.org builds a client configuration.

Starts where only a newer .NET is installed

  • The .NET tool now also starts on a machine that has no .NET 8 but a newer .NET. It runs on the next newer .NET on the machine and needs that version's SDK, so just the .NET 10 SDK works - which is what the dnx configuration nuget.org offers needs. Where .NET 8 is installed, nothing changes.
  • If aicb reports that MSBuild could not be registered, the .NET it runs on has no SDK of its own (for example a .NET 9 runtime next to the .NET 10 SDK): install the .NET 8 SDK, or set DOTNET_ROLL_FORWARD=LatestMajor so that it uses the newest .NET.

Calls through an interface are credited to the implementing method

  • find_usages and impact_of_change now count the callers of the interface or abstract members a method implements, disclosed in viaContract and viaContractNote (exact with one implementation, a union with several). Before, a method called only through its interface looked unused.
  • find_tests_for adds the tiers dispatch and dispatch-via (counted in dispatchTotal), coverage_gaps marks a method only such a test reaches with viaDispatch, and review_context, diff_review, explain_symbol, verify_claim and find_by_complexity_and_coverage carry the qualifier along instead of treating the credit as certain.

Answers that say what they could not do

  • An answer over 16,000,000 bytes as JSON is refused with its size and a remedy (outputPath for export_markdown, a narrower query otherwise) instead of failing with a bare -32603 or a closed connection. The limit is set with AICB_MCP_MAX_RESPONSE_BYTES.
  • analyze_solution and the session tools carry incompleteRun when scanned projects could not bind their core framework types - how many, which, and the repair - on the first answer instead of only after a later refresh.

Fixed

  • A refresh keeps the namespace exclusions of the first analysis. With the default aicb mcp server, the active Exclude Namespaces list applied to the first analysis but not to later refreshes, so an unchanged solution could show different dependencies, metrics and insights after a refresh. evaluate_change_set now analyzes a proposed change with the same exclusions.

If your MCP client caches tool descriptions, reconnect it once - several tool descriptions changed with their answers.

Details: CHANGELOG. The complete manuals are under docs/manual/; they describe product state 0.5.464.43, with the licensing chapter current for EULA v0.6.

Install - pick one per machine

You use Install
Windows with the desktop app AIContextBuilder-Setup-0.5.465.1.exe - desktop app + CLI/MCP server (administrator rights; puts aicb on PATH). Portable alternative without administrator rights: AIContextBuilder-0.5.465.1-win-x64.zip - unzip and run gui\aicb-ui.exe; cli\aicb.exe is the CLI/MCP server
Linux, macOS, CI, or no desktop app the .NET tool from nuget.org: dotnet tool install -g AIContextBuilder (needs the .NET 8 SDK - or, without .NET 8, the SDK of the next newer .NET on the machine)

Already on the .NET tool: dotnet tool update -g AIContextBuilder. Already on the installer: run the new installer over the old one. In a container: the repository carries a Dockerfile that installs the package and serves MCP over stdio.

AIContextBuilder.0.5.465.1.nupkg is the identical .NET tool package for machines without access to nuget.org: put it into an otherwise empty folder and add --add-source ./that-folder.

The Windows downloads bring their own .NET runtime. Analyzing a solution still needs MSBuild on the machine - a .NET SDK or Visual Studio.

Not code-signed yet: Windows SmartScreen shows "Windows protected your PC" - choose More info -> Run anyway. Verify your download against the checksums below (Get-FileHash <file> -Algorithm SHA256).

New here? Start with Getting started.

License

Free for individuals, education, and organizations below 100 employees, EUR 10 million turnover and 21 developers - see Licensing in plain words. Commercial licenses start at EUR 25 per licensed developer per month. No telemetry, no license server; analysis runs entirely on your machine.

SHA-256

9a87319289596babd567884a8adb1e702fa97698dc1debc461652c5deb37d4fc *AIContextBuilder-Setup-0.5.465.1.exe
d89ba1b922aa1cac4b0061ce714cad83dc8f634202c8260a69961735f10bac37 *AIContextBuilder-0.5.465.1-win-x64.zip
df62c05aa6d1a10b80fa58119c2742985196692f8a76c07070e156992bc1b8b9 *AIContextBuilder.0.5.465.1.nupkg

AICB 0.5.464.66

Choose a tag to compare

@gregordadera gregordadera released this 28 Sep 20:59

The bundled SQLite closes CVE-2025-6965, get_diagnostics names what it could not compile, and prepare_task stays within a budget. Everyone gets the SQLite security update and the editorial license version 0.6. The rest concerns the MCP server and the aicb CLI. No database change; saved snapshots stay valid.

Security

  • The bundled SQLite library moves from 3.41.2 to 3.53.3, which fixes CVE-2025-6965 (GHSA-2m69-gcr7-jv3q, severity high). aicb uses SQLite only for its own local database and runs only its own SQL, so the practical exposure was low - but the vulnerable native library shipped in the NuGet tool package, the installer and the portable ZIP, where a vulnerability scanner reports it. Existing databases open unchanged; no re-analysis is needed.

Licensing

  • EULA version 0.6 is an editorial version with unchanged terms: real umlauts in the German part and plain hyphens instead of dashes. Prices, thresholds and every right and obligation are the same as in version 0.5.

get_diagnostics says what it could not compile

  • A failed design-time build is disclosed in designTimeBuildFailures - for example a version task failing on a shallow clone. Such a project is still compiled with what could be read, so its counts can be wrong in both directions; the answer now names each affected project file with the loader's own message and the remedy.
  • Generated code the analysis could not produce is disclosed in generatedCodeGaps: a generator from a project that was never built, a generator built for a newer compiler than the analysis host, one that failed to load, or WPF code-behind whose markup half is missing. Items that sit exactly where code is missing are marked missingGeneratedCode: true.
  • A file-scoped call names the incomplete project its marked items inherit from, so a cascadeFromIncomplete item always has its cause named, and suppressedDiagnosticsTotal appears whenever incompleteRatio does.

prepare_task stays within a budget

  • The template render has a default ceiling. When no budget was configured - true for every built-in profile - the answer could run to hundreds of thousands of characters. It is now capped at what an MCP client shows inline, manifest included; on a goal naming one type, about 304 000 characters became about 15 000.
  • A goal that names a declared symbol exactly seeds on exactly those symbols, the type it names stays in the answer even under a tight budget, and the pruning notes no longer break the YAML frontmatter.

Tests, construction sites and corrected answers

  • find_tests_for counts a test that builds the queried type - new matchReason values constructs and constructs-via for type and constructor queries.
  • review_context caps covering tests at 50 per symbol with coveringTestsTotal and coveringTestsTruncated, and instantiation_sites separates test from production with isTestProject, createdByTests and injectedIntoTests.
  • Calls from constructors and property accessors in test projects count as test calls in impact_of_change and find_dead_code; same-named local functions in different methods are no longer merged; list_insights drops two false alarms (nameof(Task<T>.Result), Enumerable.Empty<T>() in a loop); resolve_injection no longer matches an anonymous factory product against an unrelated service; symbol_metrics states that complexity measures code shape, not runtime cost.

If your MCP client caches tool descriptions, reconnect it once - several tool descriptions changed with their answers.

Details: CHANGELOG. The complete manuals are under docs/manual/; they describe product state 0.5.464.43, with the licensing chapter current for EULA v0.6.

Install - pick one per machine

You use Install
Windows with the desktop app AIContextBuilder-Setup-0.5.464.66.exe - desktop app + CLI/MCP server (administrator rights; puts aicb on PATH). Portable alternative without administrator rights: AIContextBuilder-0.5.464.66-win-x64.zip - unzip and run gui\aicb-ui.exe; cli\aicb.exe is the CLI/MCP server
Linux, macOS, CI, or no desktop app the .NET tool from nuget.org: dotnet tool install -g AIContextBuilder (needs the .NET 8 SDK)

Already on the .NET tool: dotnet tool update -g AIContextBuilder. Already on the installer: run the new installer over the old one. In a container: the repository carries a Dockerfile that installs the package and serves MCP over stdio.

AIContextBuilder.0.5.464.66.nupkg is the identical .NET tool package for machines without access to nuget.org: put it into an otherwise empty folder and add --add-source ./that-folder.

The Windows downloads bring their own .NET runtime. Analyzing a solution still needs MSBuild on the machine - a .NET SDK or Visual Studio.

Not code-signed yet: Windows SmartScreen shows "Windows protected your PC" - choose More info -> Run anyway. Verify your download against the checksums below (Get-FileHash <file> -Algorithm SHA256).

New here? Start with Getting started.

License

Free for individuals, education, and organizations below 100 employees, EUR 10 million turnover and 21 developers - see Licensing in plain words. Commercial licenses start at EUR 25 per licensed developer per month. No telemetry, no license server; analysis runs entirely on your machine.

SHA-256

f2f3f4207908577ae4fabf73a7c3778d402cf667936cd394368774395cfb0099 *AIContextBuilder-Setup-0.5.464.66.exe
5f160ceb63994ceed37fd3cf2370de85231fc294639459e6ac6e8e52fe6229d4 *AIContextBuilder-0.5.464.66-win-x64.zip
7cc9d9dd60be09761cf31653392b837155fc131e28b1a958a7399d4f718180a5 *AIContextBuilder.0.5.464.66.nupkg

AICB 0.5.464.56

Choose a tag to compare

@gregordadera gregordadera released this 26 Sep 19:44

The shipped license catches up with the published one, and six answers stop hiding what they left out. The binding agreement in the installer, the portable ZIP and the NuGet package is now EULA v0.5 - the same version published in this repository. Beyond licensing this release is about MCP answers and exported Markdown disclosing what they omitted. No database change, no re-analysis; saved snapshots stay valid.

Licensing

  • EULA v0.5 ships with the product. Over v0.3 it adds: commercial licenses start at EUR 25 per licensed developer per month, and a commercial agreement can include defined response and security-fix targets, version maintenance, prioritized general product improvements and source-code review under NDA.
  • Unchanged: the free thresholds (100 employees, EUR 10 million annual turnover, 21 developers), the 90-day transition period as contractual text only, and the absence of any enforcement - no license server, no activation, no timer, no threshold data leaving your machine.
  • The nuget.org package page now states the same terms as this repository.

Answers that now disclose what they omitted

  • architecture_overview leads with a <TRUNCATION> block when the document was cut: how many sections were capped, how many entries are shown out of how many, and one SECTION: shown of total row per cut section. The per-section +N more lines each named one section and added up for nobody - on a large solution that meant 640 of 8706 entries shown with no statement anywhere that the rest existed. The frontmatter of a truncated document stays parseable.
  • find_usages reports selfReferences - how many of the listed users are declared on the queried symbol's own type - and notes when all of them are. That is the answer that reads as outside dependence while nothing outside actually depends on the symbol. Disclosed, never filtered: a self-reference is a real reference.
  • find_symbol and symbol_signature say when generated C# was skipped. Generated sources under obj/ stay out of the analysis on purpose, but a zero-hit answer used to read as "no such type". On a solution that has such files, a zero-hit answer now says so in generatedSourcesNote.
  • A broken .aicb.json no longer reads as "nothing configured". solution_config_status and check_solution_config_drift carry sidecarProblem when the sidecar next to the .sln exists but cannot be used, and they keep an invalid file apart from a locked one. Until now a broken sidecar produced an answer byte-identical to having none. A healthy answer is unchanged.

Corrected and smaller answers

  • returnKind names the return type's family, not its arity. A plain Task was reported as object while Task<T> was task, and non-generic IEnumerable, IList, ICollection, plus IReadOnlyCollection and IAsyncEnumerable, fell out of collection.
  • find_usages on a bare member name no longer mixes namesakes into the self-reference count - where a short name matches members on several types the count is omitted instead of reported wrongly; a type-qualified query answers as before.
  • Exported Markdown carries a smaller <COMPRESSION_LEGEND>: it explains only the notations the finished document actually contains. On a single-symbol export it had grown to about a third of the whole document while explaining blocks that were not in it.
  • pack_for_task fills the budget it was given, also on slices that had to degrade - measured at about 85 % of a 25 000-token budget, below the 92 % the tool aims for; the same request now lands at about 96 %.

If your MCP client caches tool descriptions, reconnect it once - several tool descriptions changed with their answers.

Details: CHANGELOG. The complete manuals are under docs/manual/; they describe product state 0.5.464.43, with the licensing chapter current for EULA v0.5.

Install - pick one per machine

You use Install
Windows with the desktop app AIContextBuilder-Setup-0.5.464.56.exe - desktop app + CLI/MCP server (administrator rights; puts aicb on PATH). Portable alternative without administrator rights: AIContextBuilder-0.5.464.56-win-x64.zip - unzip and run gui\aicb-ui.exe; cli\aicb.exe is the CLI/MCP server
Linux, macOS, CI, or no desktop app the .NET tool from nuget.org: dotnet tool install -g AIContextBuilder (needs the .NET 8 SDK; version 0.5.464.56 follows this GitHub release)

Already on the .NET tool: dotnet tool update -g AIContextBuilder. Already on the installer: run the new installer over the old one. In a container: the repository carries a Dockerfile that installs the package and serves MCP over stdio.

AIContextBuilder.0.5.464.56.nupkg is the identical .NET tool package for machines without access to nuget.org: put it into an otherwise empty folder and add --add-source ./that-folder.

The Windows downloads bring their own .NET runtime. Analyzing a solution still needs MSBuild on the machine - a .NET SDK or Visual Studio.

Not code-signed yet: Windows SmartScreen shows "Windows protected your PC" - choose More info → Run anyway. Verify your download against the checksums below (Get-FileHash <file> -Algorithm SHA256).

New here? Start with Getting started.

License

Free for individuals, education, and organizations below 100 employees, EUR 10 million turnover and 21 developers - see Licensing in plain words. Commercial licenses start at EUR 25 per licensed developer per month. No telemetry, no license server; analysis runs entirely on your machine.

SHA-256

96b6eaa157212d1ba66ecc5a938142614ebc63cc1be277fb4b9eb1323bf819a0 *AIContextBuilder-Setup-0.5.464.56.exe
819ee2626f4609ac57e1015c77f1bc9f04dd3b0d92c7522b2972c45a6dbf8d9b *AIContextBuilder-0.5.464.56-win-x64.zip
1726f5b1f8a28d8f3f0e61a25ecdba014dfc083cffe9c1d6924075bd04ff092c *AIContextBuilder.0.5.464.56.nupkg

AICB 0.5.464.44

Choose a tag to compare

@gregordadera gregordadera released this 25 Sep 11:23

A fourth optional Agent Skill and complete browser-readable manuals. This release reaches users who run aicb init --skills=all and everyone reading the public documentation. The analysis engine, MCP tool answers, desktop app and saved snapshots are unchanged.

What changed

  • New optional skill aicb-usage-check - it calls usage_report at the end of a task and summarizes which AICB tools were actually used, which offered tools went untouched, and what the calls cost. It stays opt-in alongside the review pair; a default aicb init still writes only aicb-csharp-context. Run aicb init --skills=all again in an existing project to install it there.
  • All three reference manuals are now readable as Markdown in the browser and by coding agents, one chapter per file. Printable PDFs sit beside them under stable names that will not break on the next release. The manuals describe product state 0.5.464.43; build .44 changes only the guard described next.
  • The package page can no longer silently omit a shipped skill. Every release now checks the install page, the CLI help and the package README against the list of skills that actually ship. This closes the gap that briefly left the nuget.org page describing only three skills.
  • Published builds report the plain version 0.5.464.44, without a private commit suffix.

Details: CHANGELOG. The complete manuals are under docs/manual/.

Install - pick one per machine

You use Install
Windows with the desktop app AIContextBuilder-Setup-0.5.464.44.exe - desktop app + CLI/MCP server (administrator rights; puts aicb on PATH). Portable alternative without administrator rights: AIContextBuilder-0.5.464.44-win-x64.zip - unzip and run gui\aicb-ui.exe; cli\aicb.exe is the CLI/MCP server
Linux, macOS, CI, or no desktop app the .NET tool from nuget.org: dotnet tool install -g AIContextBuilder (needs the .NET 8 SDK; version 0.5.464.44 follows this GitHub release)

Already on the .NET tool: dotnet tool update -g AIContextBuilder. Already on the installer: run the new installer over the old one. In a container: the repository carries a Dockerfile that installs the package and serves MCP over stdio.

AIContextBuilder.0.5.464.44.nupkg is the identical .NET tool package for machines without access to nuget.org: put it into an otherwise empty folder and add --add-source ./that-folder.

The Windows downloads bring their own .NET runtime. Analyzing a solution still needs MSBuild on the machine - a .NET SDK or Visual Studio.

Not code-signed yet: Windows SmartScreen shows "Windows protected your PC" - choose More info → Run anyway. Verify your download against the checksums below (Get-FileHash <file> -Algorithm SHA256).

New here? Start with Getting started.

License

Free for individuals, education, and organizations below 100 employees, EUR 10 million turnover and 21 developers - see Licensing in plain words. No telemetry, no license server; analysis runs entirely on your machine.

SHA-256

39297a0c0cd6d798cd05d04b8888ff6f4894e8f19103f06d815018e90ae67410 *AIContextBuilder-Setup-0.5.464.44.exe
fe3b362f971b9951781364f53ea6193e6aacd1ba87b7b6a1d972a412e9bc3cff *AIContextBuilder-0.5.464.44-win-x64.zip
9b5c79bad056ca8ffa625585606f4a71e4bad36bc733fe7fbf381b07a5f4d22d *AIContextBuilder.0.5.464.44.nupkg

AICB 0.5.464.41

Choose a tag to compare

@gregordadera gregordadera released this 24 Sep 12:11

resolve_injection now says how visible a service is in constructors. This reaches the MCP server and the aicb CLI; the desktop app is unchanged, and saved snapshots stay valid - no database change, no re-analysis.

What changed

  • New field constructorConsumerCount - how many distinct types take the queried service as a plain constructor parameter. It is present on every answer, and a zero is a result rather than a missing field. Until now only optional constructor parameters were ever reported, so a service half a solution injects and a service nobody injects produced the same answer.
  • It is a description, not a verdict. The field counts constructor parameters and nothing else, so a service obtained through GetService<T>, built inside a factory lambda, or reached by reflection or XAML counts 0 while being thoroughly alive. The first live reading makes the point better than a warning could: a service that nearly everything takes as a factory delegate reports 2. For "is this used at all", find_usages is still the tool.
  • An optional parameter counts here too, and such a consumer still appears on optionalDependencies; collection consumption keeps its own field and is not counted twice. Consumers declared in test projects follow the existing includeTests filter.
  • Published builds keep reporting a plain version number (0.5.464.41).

If your client caches tool descriptions, reconnect it once - the text of resolve_injection changed along with its answer.

Details: CHANGELOG.

Install - pick one per machine

You use Install
Windows with the desktop app AIContextBuilder-Setup-0.5.464.41.exe - desktop app + CLI/MCP server (administrator rights; puts aicb on PATH). Portable alternative without administrator rights: AIContextBuilder-0.5.464.41-win-x64.zip - unzip and run gui\aicb-ui.exe; cli\aicb.exe is the CLI/MCP server
Linux, macOS, CI, or no desktop app the .NET tool from nuget.org: dotnet tool install -g AIContextBuilder (needs the .NET 8 SDK)

Already on the .NET tool: dotnet tool update -g AIContextBuilder. Already on the installer: run the new installer over the old one. In a container: the repository carries a Dockerfile that installs this package and serves MCP over stdio.

AIContextBuilder.0.5.464.41.nupkg is the identical .NET tool package, for machines without access to nuget.org: put it into an otherwise empty folder and add --add-source ./that-folder.

The Windows downloads bring their own .NET runtime. Analyzing a solution still needs MSBuild on the machine - a .NET SDK or Visual Studio.

Not code-signed yet: Windows SmartScreen shows "Windows protected your PC" - choose More info → Run anyway. Verify your download against the checksums below (Get-FileHash <file> -Algorithm SHA256).

New here? Start with Getting started.

License

Free for individuals, education, and organizations below 100 employees, EUR 10 million turnover and 21 developers - see Licensing in plain words. No telemetry, no license server; analysis runs entirely on your machine.

SHA-256

38e58988036b4e00b4a17c9de1b945a872be81dba25d1d62e3f0fc0d75e9e2db *AIContextBuilder-Setup-0.5.464.41.exe
fb614908674f377f91b9a1479c4b426c14cf79ecab9efd3dcb0fb2121ab6e17e *AIContextBuilder-0.5.464.41-win-x64.zip
5f14d37cbf07a6ab905b0e15690e56f69fbbc59a402e3dae5574641e78cb4939 *AIContextBuilder.0.5.464.41.nupkg

AICB 0.5.464.40

Choose a tag to compare

@gregordadera gregordadera released this 24 Sep 10:13

resolve_injection stops giving confident wrong answers. Four builds (0.5.464.37 to 0.5.464.40) that all repair the same tool. Every one of them replaces an answer that looked definite with one that is either correct or openly says it does not know - which is the point: a false that means "nobody does this" is far more expensive than a "cannot tell".

Who is affected: the MCP server and the aicb CLI. The desktop app is unchanged - it does not use this analyzer. Saved snapshots stay valid; there is no database change and no re-analysis.

What changed

  • consumedAsCollection is answered for every query, not only for a conflicting one. The field says whether anything consumes a service as a set (IEnumerable<T> in a constructor, GetServices<T>()). It used to be computed only where it could also downgrade a registration conflict, and read false everywhere else - so a service registered once, or registered several times through factories, always answered false no matter how many consumers took the whole set. Measured on a real solution, two services answered false while a constructor took each of them as IEnumerable<T>.
  • A factory registration that returns its object is now resolved. AddSingleton(sp => Foo.Build()) and the block form AddSingleton(sp => { ...; return Foo.Build(); }) used to leave the registration with no type name at all - and in this single-argument form the produced type is the service, so the whole registration answered to no name. AddSingleton(sp => new Foo()) always worked; the difference was only that one returns instead of constructing. A block body is read only when all of its return statements agree, and a return inside a nested lambda or local function is correctly ignored.
  • A registration the scanner can see but cannot parse is now disclosed as such. Before, such a site was invisible, and the answer explained the resulting zero with "Autofac, Castle Windsor and Scrutor are out of scope" - pointing away from the file that actually held the binding. The note now separates "a Microsoft-DI registration was seen here but its type could not be read" from "no Microsoft-DI registration was found", and names the site.
  • Optional and nullable collection parameters count. IEnumerable<IFoo>? foos = null - a consumer that tolerates an empty set - was not counted as consuming the collection, and neither was IEnumerable<IFoo?>.
  • Consumers declared in test projects no longer count by default. This one changes an answer you may have relied on: collection consumption now obeys the same includeTests filter the registration list has always obeyed. Before, a test fixture taking IEnumerable<T> could mark a genuine production conflict between two registrations as deliberate, hiding it. Pass includeTests=true to get the old, solution-wide reading.

If your client caches tool descriptions, reconnect it once - the text of resolve_injection changed along with its behavior.

Details: CHANGELOG.

Install - pick one per machine

You use Install
Windows with the desktop app AIContextBuilder-Setup-0.5.464.40.exe - desktop app + CLI/MCP server (administrator rights; puts aicb on PATH). Portable alternative without administrator rights: AIContextBuilder-0.5.464.40-win-x64.zip - unzip and run gui\aicb-ui.exe; cli\aicb.exe is the CLI/MCP server
Linux, macOS, CI, or no desktop app the .NET tool from nuget.org: dotnet tool install -g AIContextBuilder (needs the .NET 8 SDK)

Already on the .NET tool: dotnet tool update -g AIContextBuilder. Already on the installer: run the new installer over the old one.

AIContextBuilder.0.5.464.40.nupkg is the same .NET tool package that nuget.org serves, for machines without access to it: put it into an otherwise empty folder and add --add-source ./that-folder.

One detail, for completeness: the package was repacked a few minutes after the Windows downloads, to pick up a documentation change. aicb --version therefore reports a different commit hash for the .NET tool than for the aicb.exe inside the ZIP and the installer. The product code is the same in both - the difference is the package's own README and three packaging manifests, none of which is compiled.

The Windows downloads bring their own .NET runtime. Analyzing a solution still needs MSBuild on the machine - a .NET SDK or Visual Studio.

Not code-signed yet: Windows SmartScreen shows "Windows protected your PC" - choose More info → Run anyway. Verify your download against the checksums below (Get-FileHash <file> -Algorithm SHA256).

New here? Start with Getting started.

License

Free for individuals, education, and organizations below 100 employees, EUR 10 million turnover and 21 developers - see Licensing in plain words. No telemetry, no license server; analysis runs entirely on your machine.

SHA-256

These are the files attached to this release. A .nupkg fetched from nuget.org hashes differently and that is expected, not a sign of tampering: nuget.org adds its own signature (.signature.p7s) when it ingests a package. Verified for this version - apart from that one added entry, all 211 entries are byte-identical to the file below.

90c438a5ca12813f86a5006713a9766eb90f640b345514e310d5ff75d6e8f0c7 *AIContextBuilder-Setup-0.5.464.40.exe
b439edd114e29d8f00adea7de7fac0f72b0f0fe42a8e85146a556db93c079389 *AIContextBuilder-0.5.464.40-win-x64.zip
be49627c835ea4184d2c000d10748bfb3cd26ad3d6c1bbe77425b64a5fb1aa76 *AIContextBuilder.0.5.464.40.nupkg

AICB 0.5.464.36

Choose a tag to compare

@gregordadera gregordadera released this 23 Sep 17:06

A plumbing release - nothing you can see. No tool changes its answer, the CLI and the desktop app behave exactly as in 0.5.464.35, and there is no reason to update in a hurry. It is published because the fix belongs in the line, not because it changes your day.

What changed

  • The MCP server's insights now see the queue of work items, as the desktop app's already did. No MCP tool reads that queue yet, so no answer changes; the connection keeps a future tool from reporting "nothing is queued" when the queue was simply not connected. The desktop app was never affected.
  • One consequence worth stating: where the MCP server is pointed at a database, an insights run now performs one additional indexed read against it - the same read the desktop app already does - and currently discards the result. Analysis still runs entirely on your machine, and the MCP server still writes nothing.
  • Published builds keep reporting a plain version number (0.5.464.36).

Details: CHANGELOG.

Install - pick one per machine

You use Install
Windows with the desktop app AIContextBuilder-Setup-0.5.464.36.exe - desktop app + CLI/MCP server (administrator rights; puts aicb on PATH). Portable alternative without administrator rights: AIContextBuilder-0.5.464.36-win-x64.zip - unzip and run gui\aicb-ui.exe; cli\aicb.exe is the CLI/MCP server
Linux, macOS, CI, or no desktop app the .NET tool from nuget.org: dotnet tool install -g AIContextBuilder (needs the .NET 8 SDK)

Already on the .NET tool: dotnet tool update -g AIContextBuilder. Already on the installer: run the new installer over the old one.

AIContextBuilder.0.5.464.36.nupkg is the identical .NET tool package, for machines without access to nuget.org: put it into an otherwise empty folder and add --add-source ./that-folder.

The Windows downloads bring their own .NET runtime. Analyzing a solution still needs MSBuild on the machine - a .NET SDK or Visual Studio.

Not code-signed yet: Windows SmartScreen shows "Windows protected your PC" - choose More info → Run anyway. Verify your download against the checksums below (Get-FileHash <file> -Algorithm SHA256).

New here? Start with Getting started.

License

Free for individuals, education, and organizations below 100 employees, EUR 10 million turnover and 21 developers - see Licensing in plain words. No telemetry, no license server; analysis runs entirely on your machine.

SHA-256

6505de4834a8a458bc1c44966546c9f16d6fcf1890ce2548ac1713f0d9bd66df *AIContextBuilder-Setup-0.5.464.36.exe
f1a587bd329948b31d9f7ca7044f93f40b5422565692cd7f2c9866fa6278bdd6 *AIContextBuilder-0.5.464.36-win-x64.zip
d5de68b830e7a8451779f9a471b8bb034c65ec4c644bf42e0a2f96c062367446 *AIContextBuilder.0.5.464.36.nupkg

AICB 0.5.464.35

Choose a tag to compare

@gregordadera gregordadera released this 23 Sep 15:09

Two answers about C# code that were quietly wrong. This release is about the analysis engine, so it reaches the MCP server, the CLI and the desktop app alike. The installer and the .NET tool are otherwise unchanged since 0.5.464.32.

What changed

  • resolve_injection now says whether a consumer gets what it OPTIONALLY expects. A constructor parameter with a default (IFoo? foo = null) that nothing in the registration set fills used to fall between two answers: the tool listed what was registered, never whether it arrived. The answer now carries an optionalDependencies axis naming every such consumer, with a verdict of yes, no or unknown per construction - and the verdict follows who selects the constructor: the container when the consumer is registered by type, the argument list when a factory lambda or a hand-built instance does the construction. Where the analyzer cannot see how the consumer is built, it answers unknown with a reason instead of a plausible guess. Answers for services with no optional consumer are byte-identical to before.
  • A static constructor no longer shares its caller entry with the parameterless one. static C() and C() were registered under one key, so find_usages merged the two bodies' callers and could not tell which one called what. The static constructor now keys as C.static C(), visible in find_usages, call_graph, impact_of_change and the exported Markdown.
  • Consequence for saved snapshots: the payload format moves to 56. A snapshot written by an older version is re-analyzed instead of loaded - nothing is lost, the first analysis after the update simply takes its usual time.
  • Published builds keep reporting a plain version number (0.5.464.35).

Details: CHANGELOG.

Install - pick one per machine

You use Install
Windows with the desktop app AIContextBuilder-Setup-0.5.464.35.exe - desktop app + CLI/MCP server (administrator rights; puts aicb on PATH). Portable alternative without administrator rights: AIContextBuilder-0.5.464.35-win-x64.zip - unzip and run gui\aicb-ui.exe; cli\aicb.exe is the CLI/MCP server
Linux, macOS, CI, or no desktop app the .NET tool from nuget.org: dotnet tool install -g AIContextBuilder (needs the .NET 8 SDK)

Already on the .NET tool: dotnet tool update -g AIContextBuilder. Already on the installer: run the new installer over the old one.

AIContextBuilder.0.5.464.35.nupkg is the identical .NET tool package, for machines without access to nuget.org: put it into an otherwise empty folder and add --add-source ./that-folder.

The Windows downloads bring their own .NET runtime. Analyzing a solution still needs MSBuild on the machine - a .NET SDK or Visual Studio.

Not code-signed yet: Windows SmartScreen shows "Windows protected your PC" - choose More info → Run anyway. Verify your download against the checksums below (Get-FileHash <file> -Algorithm SHA256).

New here? Start with Getting started.

License

Free for individuals, education, and organizations below 100 employees, EUR 10 million turnover and 21 developers - see Licensing in plain words. No telemetry, no license server; analysis runs entirely on your machine.

SHA-256

30ff8fdfa5c777ea2b5684ca2008f302e217bb6d6b5608108c4a2f8e174a28c6 *AIContextBuilder-Setup-0.5.464.35.exe
6b28922d8772affd9241672a93126711e69b68a908c4bfcf12efcc4b7e1e2449 *AIContextBuilder-0.5.464.35-win-x64.zip
5e7fa20578057bb5d8bb220b2ac040a40af60a366fca73b7f27bfc174f1a467d *AIContextBuilder.0.5.464.35.nupkg

AICB 0.5.464.32

Choose a tag to compare

@gregordadera gregordadera released this 21 Sep 09:16

One AICB installation per machine. The Windows installer now contains everything you need on Windows, and one update keeps the desktop app and the MCP server at the same version.

What changed

  • The installer removes an existing .NET tool (option, preselected). With both installed, Windows started the installer's aicb first, so dotnet tool update updated a copy no MCP client ran. If the tool is still running as an agent's MCP server, the installer asks you to close the agent and retry.
  • aicb init warns when aicb is installed more than once and names the copy that actually runs.
  • The installer's last page says that consoles, editors and agents that were already open see the new PATH only after a restart.
  • Published builds report a plain version number (0.5.464.32).

Details: CHANGELOG.

Install - pick one per machine

You use Install
Windows with the desktop app AIContextBuilder-Setup-0.5.464.32.exe - desktop app + CLI/MCP server (administrator rights; puts aicb on PATH). Portable alternative without administrator rights: AIContextBuilder-0.5.464.32-win-x64.zip - unzip and run gui\aicb-ui.exe; cli\aicb.exe is the CLI/MCP server
Linux, macOS, CI, or no desktop app the .NET tool from nuget.org: dotnet tool install -g AIContextBuilder (needs the .NET 8 SDK)

Already on the .NET tool: dotnet tool update -g AIContextBuilder. Already on the installer: run the new installer over the old one.

AIContextBuilder.0.5.464.32.nupkg is the identical .NET tool package, for machines without access to nuget.org: put it into an otherwise empty folder and add --add-source ./that-folder.

The Windows downloads bring their own .NET runtime. Analyzing a solution still needs MSBuild on the machine - a .NET SDK or Visual Studio.

Not code-signed yet: Windows SmartScreen shows "Windows protected your PC" - choose More info → Run anyway. Verify your download against the checksums below (Get-FileHash <file> -Algorithm SHA256).

New here? Start with Getting started.

License

Free for individuals, education, and organizations below 100 employees, EUR 10 million turnover and 21 developers - see Licensing in plain words. No telemetry, no license server; analysis runs entirely on your machine.

SHA-256

974efe7255e7e05c360c4a3bab820c962038528f9002d192075c2376d9bc6645 *AIContextBuilder-Setup-0.5.464.32.exe
e5080b2535c4486257da58e47b7f76c0c9a840f924d81ec2664658b3a2e1a4e2 *AIContextBuilder-0.5.464.32-win-x64.zip
35d3f53b61b1bcf12a56c5da2137141483ced6a72fa7b59eeaf5fe6fec6cc190 *AIContextBuilder.0.5.464.32.nupkg