Check Solution Configuration Drift
check_solution_config_driftDetects stale Layer Profile, Exclude-Namespaces and Test Profile settings that no longer match a solution's code, so you know when to rebuild them.
Instructions
Check whether a solution's active Layer Profile, Exclude-Namespaces and Test Profile still FIT the code. solution_config_status tells you WHICH configuration is active and where it comes from.
Use it on a solution configured a while ago, or when layer or exclusion results look off; a stale axis is rebuilt with init_solution_config and apply_solution_config. On a never-configured solution only exclusion.excludedApiAreas is evaluated.
Three conservative signals: layer - declared (own) namespaces that no rule of the active layer profile maps; exclusion - EXTERNAL referenced namespaces that the active exclusion list does not cover; test - projects the default heuristic classifies as test projects that the active custom test profile's rules do not match.
Returns JSON with layer, exclusion and test, each carrying source (db / sidecar / built-in / none), name, status, stale, considered (the denominator), sample (drifted names, items/count/totalFound/truncated, max 50) and reason (the drifted count against considered). status is 'stale' from 3 drifted names on for layer and exclusion, for test above a quarter of considered projects; else 'ok' (an 'ok' with a sample is still worth reading). 'built-in-preset' and 'not-configured': the axis was NOT judged, only a custom config is (a generic preset is a choice, not drift). exclusion.excludedApiAreas, on any status: excluded areas carrying the public API, each with the keepRule to add. sidecarProblem: the .aicb.json could not be read.
It changes no configuration and creates no solution row; a missing dbPath is refused, an empty one is not opened, an older one is upgraded on open (schema, built-in rows). It judges the configuration a plain analyze_solution resolves NOW, not a layerProfile the session was analyzed with. It needs a live session, not a recalled one.
Parameters: normally pass only sessionId (an absolute .sln/.slnx/.slnf path works too). Pass dbPath only if the session was analyzed with it; otherwise this judges a configuration the analysis did not use.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"sessionId": "<sessionId>"
},
"name": "check_solution_config_drift"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dbPath | No | Optional absolute path to the aicb config/master DB. If given, the config the DB holds for the solution (per-solution row, then app-global default) takes precedence over the .aicb.json sidecar; a built-in default in the DB does not. Omit to fall back to the server's default config DB (the GUI's, if resolved), else only the .aicb.json sidecar next to the .sln. | |
| sessionId | Yes | The session_id returned by analyze_solution. Also takes an absolute .sln/.slnx/.slnf path, analyzed on first use. |