projscan 4.6.0 → 4.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -11
- package/dist/cli/_shared.js +12 -44
- package/dist/cli/_shared.js.map +1 -1
- package/dist/cli/changedOnly.d.ts +16 -0
- package/dist/cli/changedOnly.js +28 -0
- package/dist/cli/changedOnly.js.map +1 -0
- package/dist/cli/formatOptions.d.ts +4 -0
- package/dist/cli/formatOptions.js +30 -0
- package/dist/cli/formatOptions.js.map +1 -0
- package/dist/core/agentBrief.js +6 -1
- package/dist/core/agentBrief.js.map +1 -1
- package/dist/core/astBodySignals.js +2 -3
- package/dist/core/astBodySignals.js.map +1 -1
- package/dist/core/astMembers.d.ts +1 -0
- package/dist/core/astMembers.js +38 -9
- package/dist/core/astMembers.js.map +1 -1
- package/dist/core/bugHunt.js +2 -142
- package/dist/core/bugHunt.js.map +1 -1
- package/dist/core/bugHuntHotspotFindings.d.ts +2 -0
- package/dist/core/bugHuntHotspotFindings.js +68 -0
- package/dist/core/bugHuntHotspotFindings.js.map +1 -0
- package/dist/core/bugHuntPreflightFindings.d.ts +3 -0
- package/dist/core/bugHuntPreflightFindings.js +115 -0
- package/dist/core/bugHuntPreflightFindings.js.map +1 -0
- package/dist/core/codeGraph.d.ts +1 -8
- package/dist/core/codeGraph.js +4 -30
- package/dist/core/codeGraph.js.map +1 -1
- package/dist/core/codeGraphFileSelection.d.ts +7 -0
- package/dist/core/codeGraphFileSelection.js +19 -0
- package/dist/core/codeGraphFileSelection.js.map +1 -0
- package/dist/core/codeGraphQueries.d.ts +9 -0
- package/dist/core/codeGraphQueries.js +25 -0
- package/dist/core/codeGraphQueries.js.map +1 -0
- package/dist/core/dataflow.js +3 -338
- package/dist/core/dataflow.js.map +1 -1
- package/dist/core/dataflowDatabaseSinks.d.ts +8 -0
- package/dist/core/dataflowDatabaseSinks.js +78 -0
- package/dist/core/dataflowDatabaseSinks.js.map +1 -0
- package/dist/core/dataflowRiskAssembly.d.ts +11 -0
- package/dist/core/dataflowRiskAssembly.js +117 -0
- package/dist/core/dataflowRiskAssembly.js.map +1 -0
- package/dist/core/dataflowTraversal.d.ts +25 -0
- package/dist/core/dataflowTraversal.js +200 -0
- package/dist/core/dataflowTraversal.js.map +1 -0
- package/dist/core/fileInspectionReport.d.ts +13 -0
- package/dist/core/fileInspectionReport.js +49 -0
- package/dist/core/fileInspectionReport.js.map +1 -0
- package/dist/core/fileInspector.d.ts +3 -11
- package/dist/core/fileInspector.js +2 -46
- package/dist/core/fileInspector.js.map +1 -1
- package/dist/core/fixSuggest.d.ts +1 -9
- package/dist/core/fixSuggest.js +2 -58
- package/dist/core/fixSuggest.js.map +1 -1
- package/dist/core/fixSuggestDependencyNames.d.ts +1 -0
- package/dist/core/fixSuggestDependencyNames.js +9 -0
- package/dist/core/fixSuggestDependencyNames.js.map +1 -0
- package/dist/core/fixSuggestPreview.d.ts +10 -0
- package/dist/core/fixSuggestPreview.js +87 -0
- package/dist/core/fixSuggestPreview.js.map +1 -0
- package/dist/core/frameworkHonoSources.js +7 -0
- package/dist/core/frameworkHonoSources.js.map +1 -1
- package/dist/core/frameworkNextRouteSources.d.ts +6 -1
- package/dist/core/frameworkNextRouteSources.js +31 -1
- package/dist/core/frameworkNextRouteSources.js.map +1 -1
- package/dist/core/frameworkRemixSources.d.ts +2 -0
- package/dist/core/frameworkRemixSources.js +63 -0
- package/dist/core/frameworkRemixSources.js.map +1 -0
- package/dist/core/frameworkSources.d.ts +15 -3
- package/dist/core/frameworkSources.js +41 -10
- package/dist/core/frameworkSources.js.map +1 -1
- package/dist/core/intentRouter.d.ts +4 -14
- package/dist/core/intentRouter.js +4 -29
- package/dist/core/intentRouter.js.map +1 -1
- package/dist/core/intentRouterCatalog.js +17 -0
- package/dist/core/intentRouterCatalog.js.map +1 -1
- package/dist/core/intentRouterKeywordWeights.js +13 -0
- package/dist/core/intentRouterKeywordWeights.js.map +1 -1
- package/dist/core/intentRouterReleaseSignals.js +119 -39
- package/dist/core/intentRouterReleaseSignals.js.map +1 -1
- package/dist/core/intentRouterResult.d.ts +16 -0
- package/dist/core/intentRouterResult.js +34 -0
- package/dist/core/intentRouterResult.js.map +1 -0
- package/dist/core/intentRouterWorkSignals.js +18 -0
- package/dist/core/intentRouterWorkSignals.js.map +1 -1
- package/dist/core/languages/pythonLockfiles.d.ts +4 -0
- package/dist/core/languages/pythonLockfiles.js +6 -2
- package/dist/core/languages/pythonLockfiles.js.map +1 -1
- package/dist/core/languages/pythonManifests.js +5 -5
- package/dist/core/languages/pythonManifests.js.map +1 -1
- package/dist/core/languages/pythonProjectEvidence.js +1 -1
- package/dist/core/languages/pythonProjectEvidence.js.map +1 -1
- package/dist/core/languages/pythonRequirements.js +144 -18
- package/dist/core/languages/pythonRequirements.js.map +1 -1
- package/dist/core/pluginManifestValidation.d.ts +41 -0
- package/dist/core/pluginManifestValidation.js +179 -0
- package/dist/core/pluginManifestValidation.js.map +1 -0
- package/dist/core/plugins.d.ts +3 -41
- package/dist/core/plugins.js +2 -129
- package/dist/core/plugins.js.map +1 -1
- package/dist/core/regressionPlan.d.ts +2 -1
- package/dist/core/regressionPlan.js +7 -1
- package/dist/core/regressionPlan.js.map +1 -1
- package/dist/core/releaseEvidence.js +6 -120
- package/dist/core/releaseEvidence.js.map +1 -1
- package/dist/core/releaseEvidenceArtifacts.d.ts +3 -0
- package/dist/core/releaseEvidenceArtifacts.js +65 -0
- package/dist/core/releaseEvidenceArtifacts.js.map +1 -0
- package/dist/core/releaseEvidenceVerdict.d.ts +6 -0
- package/dist/core/releaseEvidenceVerdict.js +54 -0
- package/dist/core/releaseEvidenceVerdict.js.map +1 -0
- package/dist/core/reportPathRedaction.d.ts +4 -0
- package/dist/core/reportPathRedaction.js +64 -0
- package/dist/core/reportPathRedaction.js.map +1 -0
- package/dist/core/reportScope.js +2 -163
- package/dist/core/reportScope.js.map +1 -1
- package/dist/core/reportScopeFiltering.d.ts +9 -0
- package/dist/core/reportScopeFiltering.js +102 -0
- package/dist/core/reportScopeFiltering.js.map +1 -0
- package/dist/core/searchIndex.d.ts +2 -14
- package/dist/core/searchIndex.js +4 -227
- package/dist/core/searchIndex.js.map +1 -1
- package/dist/core/searchIndexFiles.d.ts +1 -0
- package/dist/core/searchIndexFiles.js +26 -0
- package/dist/core/searchIndexFiles.js.map +1 -0
- package/dist/core/searchIndexText.d.ts +15 -0
- package/dist/core/searchIndexText.js +204 -0
- package/dist/core/searchIndexText.js.map +1 -0
- package/dist/core/start.js +5 -46
- package/dist/core/start.js.map +1 -1
- package/dist/core/startEvidence.d.ts +1 -1
- package/dist/core/startEvidence.js +16 -1
- package/dist/core/startEvidence.js.map +1 -1
- package/dist/core/startInputs.d.ts +1 -0
- package/dist/core/startInputs.js +4 -1
- package/dist/core/startInputs.js.map +1 -1
- package/dist/core/startMissionPolicy.js +10 -0
- package/dist/core/startMissionPolicy.js.map +1 -1
- package/dist/core/startReportBuilder.d.ts +1 -0
- package/dist/core/startReportBuilder.js +1 -0
- package/dist/core/startReportBuilder.js.map +1 -1
- package/dist/core/startReportContext.d.ts +23 -0
- package/dist/core/startReportContext.js +51 -0
- package/dist/core/startReportContext.js.map +1 -0
- package/dist/core/startRoadmapPreview.d.ts +2 -0
- package/dist/core/startRoadmapPreview.js +31 -0
- package/dist/core/startRoadmapPreview.js.map +1 -0
- package/dist/core/taint.d.ts +2 -67
- package/dist/core/taint.js +41 -164
- package/dist/core/taint.js.map +1 -1
- package/dist/core/taintIndex.d.ts +20 -0
- package/dist/core/taintIndex.js +81 -0
- package/dist/core/taintIndex.js.map +1 -0
- package/dist/core/taintTraversal.d.ts +8 -0
- package/dist/core/taintTraversal.js +113 -0
- package/dist/core/taintTraversal.js.map +1 -0
- package/dist/core/taintTypes.d.ts +67 -0
- package/dist/core/taintTypes.js +2 -0
- package/dist/core/taintTypes.js.map +1 -0
- package/dist/core/telemetry.js +36 -30
- package/dist/core/telemetry.js.map +1 -1
- package/dist/core/upgradePreviewPython.js +1 -1
- package/dist/core/upgradePreviewPython.js.map +1 -1
- package/dist/mcp/tools.js +11 -12
- package/dist/mcp/tools.js.map +1 -1
- package/dist/projscan-sbom.cdx.json +6 -6
- package/dist/reporters/consoleFixReporter.d.ts +3 -0
- package/dist/reporters/consoleFixReporter.js +41 -0
- package/dist/reporters/consoleFixReporter.js.map +1 -0
- package/dist/reporters/consoleReporter.d.ts +1 -3
- package/dist/reporters/consoleReporter.js +1 -42
- package/dist/reporters/consoleReporter.js.map +1 -1
- package/dist/tool-manifest.json +2 -2
- package/dist/types/start.d.ts +14 -0
- package/docs/GUIDE.md +1 -1
- package/docs/ROADMAP.md +16 -5
- package/package.json +1 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Issue, Fix, FixResult } from '../types.js';
|
|
2
1
|
export { reportDiagram, reportStructure } from './consoleArchitectureReporter.js';
|
|
3
2
|
export { reportAnalysis } from './consoleAnalysisReporter.js';
|
|
4
3
|
export { reportAudit } from './consoleAuditReporter.js';
|
|
@@ -7,6 +6,7 @@ export { reportCoupling } from './consoleCouplingReporter.js';
|
|
|
7
6
|
export { reportDependencies } from './consoleDependencyReporter.js';
|
|
8
7
|
export { reportDiff } from './consoleDiffReporter.js';
|
|
9
8
|
export { reportExplanation } from './consoleExplanationReporter.js';
|
|
9
|
+
export { reportDetectedIssues, reportFixResults } from './consoleFixReporter.js';
|
|
10
10
|
export { reportExplainIssue, reportFixSuggest } from './consoleFixGuidanceReporter.js';
|
|
11
11
|
export { reportFileInspection } from './consoleFileReporter.js';
|
|
12
12
|
export { reportHealth } from './consoleHealthReporter.js';
|
|
@@ -19,5 +19,3 @@ export { reportReview } from './consoleReviewReporter.js';
|
|
|
19
19
|
export { reportUpgrade } from './consoleUpgradeReporter.js';
|
|
20
20
|
export { reportCoverage } from './consoleCoverageReporter.js';
|
|
21
21
|
export { reportWorkspaces } from './consoleWorkspaceReporter.js';
|
|
22
|
-
export declare function reportDetectedIssues(issues: Issue[], fixes: Fix[]): void;
|
|
23
|
-
export declare function reportFixResults(results: FixResult[]): void;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
1
|
export { reportDiagram, reportStructure } from './consoleArchitectureReporter.js';
|
|
3
2
|
export { reportAnalysis } from './consoleAnalysisReporter.js';
|
|
4
3
|
export { reportAudit } from './consoleAuditReporter.js';
|
|
@@ -7,6 +6,7 @@ export { reportCoupling } from './consoleCouplingReporter.js';
|
|
|
7
6
|
export { reportDependencies } from './consoleDependencyReporter.js';
|
|
8
7
|
export { reportDiff } from './consoleDiffReporter.js';
|
|
9
8
|
export { reportExplanation } from './consoleExplanationReporter.js';
|
|
9
|
+
export { reportDetectedIssues, reportFixResults } from './consoleFixReporter.js';
|
|
10
10
|
export { reportExplainIssue, reportFixSuggest } from './consoleFixGuidanceReporter.js';
|
|
11
11
|
export { reportFileInspection } from './consoleFileReporter.js';
|
|
12
12
|
export { reportHealth } from './consoleHealthReporter.js';
|
|
@@ -18,45 +18,4 @@ export { reportReview } from './consoleReviewReporter.js';
|
|
|
18
18
|
export { reportUpgrade } from './consoleUpgradeReporter.js';
|
|
19
19
|
export { reportCoverage } from './consoleCoverageReporter.js';
|
|
20
20
|
export { reportWorkspaces } from './consoleWorkspaceReporter.js';
|
|
21
|
-
// ── Helpers ───────────────────────────────────────────────
|
|
22
|
-
function header(title) {
|
|
23
|
-
const line = '─'.repeat(Math.max(title.length + 2, 40));
|
|
24
|
-
return `\n${chalk.bold.cyan(title)}\n${chalk.dim(line)}`;
|
|
25
|
-
}
|
|
26
|
-
function severityIcon(severity) {
|
|
27
|
-
switch (severity) {
|
|
28
|
-
case 'error':
|
|
29
|
-
return chalk.red('✗');
|
|
30
|
-
case 'warning':
|
|
31
|
-
return chalk.yellow('⚠');
|
|
32
|
-
case 'info':
|
|
33
|
-
return chalk.blue('ℹ');
|
|
34
|
-
default:
|
|
35
|
-
return chalk.dim('·');
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
// ── Report: fix ───────────────────────────────────────────
|
|
39
|
-
export function reportDetectedIssues(issues, fixes) {
|
|
40
|
-
console.log(header('Detected Issues'));
|
|
41
|
-
for (const issue of issues.filter((i) => i.fixAvailable)) {
|
|
42
|
-
console.log(` ${severityIcon(issue.severity)} ${issue.title}`);
|
|
43
|
-
}
|
|
44
|
-
console.log(header('Proposed Fixes'));
|
|
45
|
-
for (let i = 0; i < fixes.length; i++) {
|
|
46
|
-
console.log(` ${chalk.bold(String(i + 1) + '.')} ${fixes[i].title}`);
|
|
47
|
-
}
|
|
48
|
-
console.log('');
|
|
49
|
-
}
|
|
50
|
-
export function reportFixResults(results) {
|
|
51
|
-
console.log('');
|
|
52
|
-
for (const result of results) {
|
|
53
|
-
if (result.success) {
|
|
54
|
-
console.log(` ${chalk.green('✔')} ${result.fix.title}`);
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
console.log(` ${chalk.red('✗')} ${result.fix.title} - ${chalk.dim(result.error ?? 'unknown error')}`);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
console.log('');
|
|
61
|
-
}
|
|
62
21
|
//# sourceMappingURL=consoleReporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleReporter.js","sourceRoot":"","sources":["../../src/reporters/consoleReporter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"consoleReporter.js","sourceRoot":"","sources":["../../src/reporters/consoleReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC"}
|
package/dist/tool-manifest.json
CHANGED
package/dist/types/start.d.ts
CHANGED
|
@@ -37,6 +37,19 @@ export interface StartAdoptionLoop {
|
|
|
37
37
|
metrics: StartAdoptionLoopMetric[];
|
|
38
38
|
nextCommands: string[];
|
|
39
39
|
}
|
|
40
|
+
export interface StartRoadmapWorkstream {
|
|
41
|
+
id: string;
|
|
42
|
+
title: string;
|
|
43
|
+
priority: WorkplanPriority;
|
|
44
|
+
track: string;
|
|
45
|
+
verificationCommand?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface StartRoadmapPreview {
|
|
48
|
+
policy: 'product-readiness-plan';
|
|
49
|
+
readOnly: true;
|
|
50
|
+
lines: string[];
|
|
51
|
+
workstreams: StartRoadmapWorkstream[];
|
|
52
|
+
}
|
|
40
53
|
export interface StartFirstTenMinutesStep {
|
|
41
54
|
id: string;
|
|
42
55
|
label: string;
|
|
@@ -426,6 +439,7 @@ export interface StartReport {
|
|
|
426
439
|
truncated?: boolean;
|
|
427
440
|
};
|
|
428
441
|
};
|
|
442
|
+
roadmapPreview?: StartRoadmapPreview;
|
|
429
443
|
};
|
|
430
444
|
topRisks: StartRisk[];
|
|
431
445
|
fixFirst?: FixFirstRecommendation;
|
package/docs/GUIDE.md
CHANGED
|
@@ -180,7 +180,7 @@ When the agent first opens a repo, or before starting a refactor, the question i
|
|
|
180
180
|
For short proof-command phrasing, such as `projscan start --intent "give me proof commands"`, it also routes to `projscan_regression_plan --level focused`; reviewer-proof wording with PR comments still routes to `projscan_evidence_pack`.
|
|
181
181
|
For pre-push command questions, such as `projscan start --intent "what commands should I run before pushing?"`, it routes to `projscan_regression_plan --level focused` so the branch has a small verification loop before it leaves the workstation.
|
|
182
182
|
For release-readiness wording, such as `projscan start --intent "what should I check before release?"`, `projscan start --intent "can I deploy this?"`, `projscan start --intent "prepare this branch for deployment"`, `projscan start --intent "what changed since last release?"`, `projscan start --intent "write a release note for this change"`, or `projscan start --intent "draft changelog entry"`, it routes to `projscan_release_train` so changelog, package, SBOM, provenance, and blockers are reviewed before deploying or publishing.
|
|
183
|
-
For product-planning questions, such as `projscan start --intent "what should we build next?"` or `projscan start --intent "plan the product roadmap"`, it routes to `
|
|
183
|
+
For product-planning questions, such as `projscan start --intent "what should we build next?"` or `projscan start --intent "plan the product roadmap"`, it routes to `projscan_release_train` / `projscan release-train` so broad product direction becomes read-only roadmap planning with current post-4.4 workstreams and `evidence.roadmapPreview` instead of a generic before-edit orientation.
|
|
184
184
|
For broad improvement-planning questions, such as `projscan start --intent "what should we improve next?"`, it routes to `projscan_bug_hunt` so the agent gets an actionable ranked queue; technical variants such as tests, performance, release, dependencies, or safety keep their specialized routes.
|
|
185
185
|
For quick-win and low-risk improvement wording, such as `projscan start --intent "find a quick win"`, `projscan start --intent "what is a low risk improvement?"`, or `projscan start --intent "pick a small safe task"`, it routes to `projscan_bug_hunt` so a ranked, verifiable action queue is selected instead of a generic quality readout.
|
|
186
186
|
For tiny-task and beginner-safe wording, such as `projscan start --intent "what can I do in five minutes?"`, `projscan start --intent "pick an easy task for me"`, or `projscan start --intent "what should an intern work on?"`, it also routes to `projscan_bug_hunt`.
|
package/docs/ROADMAP.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ProjScan Roadmap
|
|
2
2
|
|
|
3
|
-
Last reviewed 2026-06-
|
|
3
|
+
Last reviewed 2026-06-17.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -45,7 +45,7 @@ Four plays, in order:
|
|
|
45
45
|
3. **Become the operator, not the advisor** — stop suggesting and start acting (cross-repo, apply, security gate). ✅ Shipped in the 1.6 arc.
|
|
46
46
|
4. **Expand the moat** — depth where it matters (CFG / dataflow on hot paths, more languages, sub-file embeddings, cost analytics, live PR review, plugin extensibility). Not everywhere; we're not trying to be Cody. ✅ The 1.7 → 2.0 arc turns this into a platform contract.
|
|
47
47
|
5. **Coordinate the swarm** — collision detection, claims/leases, merge-risk preflight, intent routing, one-call coordination, and live coordinate watch shipped across the 3.6 through 3.7 arc, with the 4.0 tool-surface consolidation now complete. The next work is evidence: prove which commands agents reach for in real multi-worktree sessions, then deepen only the paths that prevent integration failures.
|
|
48
|
-
6. **Make agent proof release-ready** — 4.1 through 4.
|
|
48
|
+
6. **Make agent proof release-ready** — 4.1 through 4.6 turned Mission Control into a goal → mission → proof → review harness and packaged the post-4.4 implementation train: current planning surfaces, adoption examples, precise framework dataflow, scoped/redacted evidence exports, Python upgrade previews, coordination evidence, public graph types, and hotspot maintainability cleanup.
|
|
49
49
|
|
|
50
50
|
We are _not_ trying to be:
|
|
51
51
|
|
|
@@ -56,9 +56,9 @@ We are _not_ trying to be:
|
|
|
56
56
|
|
|
57
57
|
## Now / Next / Later
|
|
58
58
|
|
|
59
|
-
### Now — Post-4.
|
|
59
|
+
### Now — Post-4.6 Validation
|
|
60
60
|
|
|
61
|
-
4.
|
|
61
|
+
4.6.0 "Agent Coordination And Routing Hardening" packages the latest post-4.4 implementation train. The next work is validation and selective hardening from real use, not another broad feature push or another release push.
|
|
62
62
|
|
|
63
63
|
The active validation lines are:
|
|
64
64
|
|
|
@@ -70,7 +70,18 @@ The active validation lines are:
|
|
|
70
70
|
|
|
71
71
|
Strictly **local-first** throughout: same-repo / same-machine evidence, no daemon, no cloud, no hidden network calls, no new telemetry, and no secret-value reads.
|
|
72
72
|
|
|
73
|
-
Success signals: teams copy the adoption examples into real reviews, scoped/redacted artifacts are accepted by reviewers, Python upgrade previews identify useful local evidence, dataflow additions stay quiet on lookalikes, and release bug-hunts remain free of concrete defects.
|
|
73
|
+
Success signals: teams copy the adoption examples into real reviews, scoped/redacted artifacts are accepted by reviewers, Python upgrade previews identify useful local evidence, coordination evidence explains multi-agent decisions, dataflow additions stay quiet on lookalikes, and release bug-hunts remain free of concrete defects.
|
|
74
|
+
|
|
75
|
+
### Recently Completed — 4.6.0 (2026)
|
|
76
|
+
|
|
77
|
+
**4.6.0 "Agent Coordination And Routing Hardening"** shipped the next hardening pass after the review-ready train:
|
|
78
|
+
|
|
79
|
+
- Framework-gated request-source coverage now includes Next `nextUrl`, Hono URL reads, Express URL reads, Koa URL reads, and Fastify URL reads.
|
|
80
|
+
- Agent hints include concrete local coordination evidence for multi-agent collision, handoff, and coordination decisions.
|
|
81
|
+
- Public consumers can import code graph result types.
|
|
82
|
+
- Mission Control start, intent router, review, CLI, and MCP test surfaces were split into focused suites while preserving public behavior.
|
|
83
|
+
- Intent routing, code graph parsing/indexing, release evidence, upgrade preview, CLI reporting, and MCP transport helpers moved into smaller modules.
|
|
84
|
+
- MCP watch IDs, request notifications, no-release continuation routing, agent harness proof routing, Python upgrade evidence, scoped dependency redaction, path-safe file links, unresolved review refs, and inspector purpose detection were tightened.
|
|
74
85
|
|
|
75
86
|
### Recently Completed — 4.5.0 (2026)
|
|
76
87
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "projscan",
|
|
3
3
|
"mcpName": "io.github.abhiyoheswaran1/projscan",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.7.0",
|
|
5
5
|
"description": "Agent-first code intelligence. MCP server (2025-03-26) with 11 AST adapters covering 12 named languages: JavaScript, TypeScript, Python, Go, Java, Ruby, Rust, PHP, C#, Kotlin, Swift, and C++; repo understanding maps (projscan_understand), stable v3 semantic graph (projscan_semantic_graph), dataflow risk engine with bridge-helper detection (projscan_dataflow), code graph, file + per-function AST cyclomatic complexity, per-function fan-in + fan-out, coupling + cycle detection, structural PR diff with HTML reporter, coverage report with HTML reporter, intent-grounded one-call PR review (projscan_review with optional `intent` arg, new taint flows, contract changes, and newDataflowRisks) and long-running PR-watch mode with structured per-bucket deltas (projscan_review_watch), first-60-seconds workflow orientation (projscan_start), agent workplans (projscan_workplan), bug-hunt queues (projscan_bug_hunt), product-line planning (projscan_release_train), evidence packs (projscan_evidence_pack), regression planning (projscan_regression_plan), agent briefs (projscan_agent_brief), quality scorecards (projscan_quality_scorecard), and preflight with supply-chain IOC evidence, rule-driven fix suggestions + mechanical apply layer with rollback (projscan_apply_fix, projscan_fix_suggest, projscan_explain_issue), source-to-sink taint analysis (projscan_taint) with truncation reporting, transitive blast-radius analysis with cross-repo mode (projscan_impact for files and symbols), cross-repo workspace registration + intelligence (projscan_workspace_graph), per-function semantic search chunks (sub-file embeddings), per-rule confidence + severity drift + cost-summary analytics with live streaming (projscan_cost_summary), stable local analyzer + reporter plugin API (projscan_plugin, CLI --reporter, opt-in via PROJSCAN_PLUGINS_PREVIEW=1), monorepo workspace awareness with cross-package import policy + per-package dependencies / outdated / audit, BM25 + optional semantic search, cursor pagination, progress notifications, context-budgeted output, and a stable-surface CI guard. CLI on the side.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.js",
|