@thomasminh1995/depverdict 0.6.0-alpha.1
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/LICENSE +21 -0
- package/README.md +518 -0
- package/bin/depverdict.js +7 -0
- package/bin/upgradelens.js +7 -0
- package/docs/GR-01-Semantic-Grounding-Failure-Analysis.md +309 -0
- package/docs/GR-02-Versioned-Action-Evaluation-Criteria.md +187 -0
- package/docs/GR-03-Extractive-Contract-Safety-Experiment.md +242 -0
- package/docs/GR-04-Versioned-Production-Extractive-Contract.md +154 -0
- package/docs/IA-01-Repository-Usage-Discovery.md +122 -0
- package/docs/IA-02-Repository-Impact-Analysis.md +118 -0
- package/docs/IA-03-Repository-Impact-Evidence.md +160 -0
- package/docs/IA-04-CLI-Orchestration.md +235 -0
- package/docs/IA-05-Real-Provider-Validation.md +235 -0
- package/docs/IA-05-VinGrade-Validation.md +339 -0
- package/docs/MVP-01.md +48 -0
- package/docs/MVP-02-Architecture.md +536 -0
- package/docs/MVP-02-CLI-HTTP-Runtime.md +50 -0
- package/docs/MVP-02-HTTP-Lifecycle.md +37 -0
- package/docs/MVP-02-Knowledge-Manifest-Generation.md +75 -0
- package/docs/MVP-02-Knowledge-Manifest.md +279 -0
- package/docs/MVP-02-Knowledge-Research-Orchestration.md +62 -0
- package/docs/MVP-02-Knowledge-Store.md +87 -0
- package/docs/MVP-02-PyPI-Registry-Adapter.md +97 -0
- package/docs/MVP-02-Research-Planning.md +196 -0
- package/docs/MVP-02-Source-Provenance.md +81 -0
- package/docs/MVP-02-npm-Registry-Adapter.md +99 -0
- package/docs/RR-01-End-to-End-and-Real-Provider-Validation.md +393 -0
- package/docs/RR-01-RERUN-Extractive-Contract-Validation.md +566 -0
- package/docs/RR-02-Full-Product-Workflow-and-Developer-CLI-UX-Review.md +35 -0
- package/docs/RR02-FIX-01-Persistent-Qualification-Resolution.md +32 -0
- package/docs/RR02-FIX-02-Stage-aware-CLI-Progress-and-Heartbeat.md +28 -0
- package/docs/RR02-FIX-03-npm-Capture-Evidence-Exclusion.md +33 -0
- package/docs/RR02-FIX-03A-Complete-Package-Exclusion-and-Evidence-Commit.md +223 -0
- package/docs/RR02-FIX-04-Event-loop-safe-Heartbeat.md +393 -0
- package/docs/RR02-FIX-05-Materialize-Persisted-Qualification.md +207 -0
- package/docs/RR02-RERUN-CLI-Qualification-Progress-UX-and-Package-Validation.md +342 -0
- package/docs/VinGrade-MVP-02-Validation.md +480 -0
- package/docs/VinGrade-RC02-Live-Validation.md +273 -0
- package/docs/ai-capability-discovery.md +573 -0
- package/docs/ai-engineering-production-readiness.md +390 -0
- package/docs/ai-engineering-review.md +251 -0
- package/docs/ai-runtime-governance-discovery.md +754 -0
- package/docs/architecture-overview.md +78 -0
- package/docs/cli-progress.md +111 -0
- package/docs/decisions/diff-01-brand-distribution-identity.md +450 -0
- package/docs/decisions/diff-02-identity-compatibility-contract.md +274 -0
- package/docs/decisions/diff-03-repository-docs-community-migration.md +165 -0
- package/docs/decisions/diff-04-release-evidence-gap-acceptance.md +110 -0
- package/docs/discovery/mvp-05-ai-migration-planning-discovery.md +350 -0
- package/docs/gateway-runtime-discovery.md +614 -0
- package/docs/live-ai-validation.md +299 -0
- package/docs/migration-planning-qualification-resolution.md +99 -0
- package/docs/migrations/upgradelens-to-depverdict.md +97 -0
- package/docs/mp-r03-deterministic-upgrade-decision-architecture.md +135 -0
- package/docs/mp-r04-evidence-bounded-migration-handoff-architecture.md +116 -0
- package/docs/mp-r05-product-completion-and-decision-first-cli-architecture.md +162 -0
- package/docs/mvp-05-deterministic-context-runtime.md +127 -0
- package/docs/mvp-05-migration-checklist-contract.md +166 -0
- package/docs/mvp-05-migration-checklist-orchestration.md +105 -0
- package/docs/mvp-05-migration-evaluation-and-qualification.md +135 -0
- package/docs/mvp-05-provider-neutral-generator.md +79 -0
- package/docs/ollama-local-smoke-validation.md +156 -0
- package/docs/openai-compatible-runtime-discovery.md +789 -0
- package/docs/openrouter-one-dependency-validation.md +205 -0
- package/docs/oss-02-package-guard-hardening-architecture.md +131 -0
- package/docs/oss-04-public-ci-package-metadata-architecture.md +142 -0
- package/docs/package-content-policy.md +98 -0
- package/docs/releases/v0.5.0-technical-preview.md +114 -0
- package/docs/releases/v0.6.0-alpha.1-depverdict-preview.md +101 -0
- package/docs/reviews/diff-02-identity-contract-compatibility.md +413 -0
- package/docs/reviews/diff-03-repository-docs-community-migration.md +364 -0
- package/docs/reviews/diff-04-depverdict-distribution-identity-readiness-rereview.md +453 -0
- package/docs/reviews/diff-04-fix-post-rename-identity-release-remediation.md +310 -0
- package/docs/reviews/diff-05-final-preview-distribution-qualification.md +561 -0
- package/docs/reviews/mvp-05-final-product-value-workflow-rereview.md +471 -0
- package/docs/reviews/mvp-05-product-workflow-review.md +605 -0
- package/docs/reviews/oss-01-duplicate-artifact-investigation-cleanup.md +411 -0
- package/docs/reviews/oss-02-package-guard-hardening.md +303 -0
- package/docs/reviews/oss-03-community-scaffolding.md +378 -0
- package/docs/reviews/oss-04-public-ci-package-metadata.md +439 -0
- package/docs/reviews/oss-05-technical-preview-qualification.md +482 -0
- package/docs/reviews/upgradelens-vs-upgradedepdetective-source-comparison.md +355 -0
- package/docs/reviews/v0.5.0-pre-release-smoke.md +263 -0
- package/docs/reviews/v0.5.0-version-bump-release-verification.md +306 -0
- package/docs/runtime-contract-discovery.md +521 -0
- package/docs/structured-output-compatibility-report.md +100 -0
- package/docs/ts-fix-01-exact-duplicate-occurrence-target-selection-architecture.md +111 -0
- package/docs/version-analysis-architecture.md +827 -0
- package/eval/README.md +86 -0
- package/eval/datasets/generic/declared-constraint.json +59 -0
- package/eval/datasets/generic/evidence-conflict.json +73 -0
- package/eval/datasets/generic/major-breaking-release.json +66 -0
- package/eval/datasets/generic/missing-evidence.json +46 -0
- package/eval/datasets/generic/patch-release-low.json +59 -0
- package/eval/datasets/node/axios-patch-low.json +59 -0
- package/eval/datasets/node/react-major-breaking.json +66 -0
- package/eval/datasets/node/react-minor-compatibility.json +66 -0
- package/eval/datasets/python/fastapi-deprecation.json +66 -0
- package/eval/datasets/python/pydantic-major-breaking.json +66 -0
- package/eval/migration-planning/golden-dataset-v2.json +306 -0
- package/eval/migration-planning/golden-dataset.json +214 -0
- package/eval/schemas/expected-result.schema.json +88 -0
- package/eval/schemas/golden-case.schema.json +181 -0
- package/package.json +57 -0
- package/schemas/ai-scorecard.schema.json +132 -0
- package/schemas/benchmark-report.schema.json +189 -0
- package/schemas/benchmark.schema.json +55 -0
- package/schemas/capability-profile.schema.json +44 -0
- package/schemas/conformance-report.schema.json +150 -0
- package/schemas/deployment-profile.schema.json +64 -0
- package/schemas/evaluation-report.schema.json +158 -0
- package/schemas/knowledge-evidence-bundle.schema.json +150 -0
- package/schemas/knowledge-manifest.schema.json +548 -0
- package/schemas/metrics.schema.json +178 -0
- package/schemas/migration-checklist-extractive-candidate.schema.json +42 -0
- package/schemas/migration-checklist.schema.json +706 -0
- package/schemas/migration-evaluation-dataset-v2.schema.json +208 -0
- package/schemas/migration-evaluation-dataset.schema.json +204 -0
- package/schemas/migration-planning-qualification-record.schema.json +234 -0
- package/schemas/project-manifest.schema.json +308 -0
- package/schemas/qualification-record.schema.json +56 -0
- package/schemas/repository-impact-evidence.schema.json +232 -0
- package/schemas/repository-impact.schema.json +202 -0
- package/schemas/upgrade-decision.schema.json +273 -0
- package/schemas/usage-index.schema.json +179 -0
- package/schemas/version-analysis.schema.json +449 -0
- package/src/ai-runtime-debug.js +325 -0
- package/src/ai-runtime-error.js +42 -0
- package/src/ai-runtime.js +174 -0
- package/src/ai-scorecard.js +204 -0
- package/src/ai-version-analysis.js +484 -0
- package/src/artifact-root-compatibility.js +91 -0
- package/src/benchmark-report.js +111 -0
- package/src/benchmark-runner.js +191 -0
- package/src/canonical-json.js +69 -0
- package/src/cli.js +1299 -0
- package/src/conformance-report.js +158 -0
- package/src/conformance-runner.js +253 -0
- package/src/constants.js +73 -0
- package/src/cooperative-scheduler.js +79 -0
- package/src/dependencies.js +44 -0
- package/src/dependency-ai-context.js +625 -0
- package/src/detectors.js +253 -0
- package/src/discovery.js +234 -0
- package/src/ecosystem-version-adapter.js +294 -0
- package/src/environment-compatibility.js +77 -0
- package/src/evaluation-comparator.js +158 -0
- package/src/evaluation-report.js +76 -0
- package/src/evaluation-runner.js +248 -0
- package/src/evidence-source-adapter.js +472 -0
- package/src/files.js +89 -0
- package/src/governance-diagnostics.js +64 -0
- package/src/governance-loader.js +63 -0
- package/src/governance-metadata.js +346 -0
- package/src/governance-validator.js +360 -0
- package/src/http/bounded-fetch.js +278 -0
- package/src/http/cli-http-runtime.js +44 -0
- package/src/impact/input-loader.js +157 -0
- package/src/impact/matcher.js +40 -0
- package/src/impact/repository-impact.js +199 -0
- package/src/impact/runtime.js +24 -0
- package/src/impact/status.js +62 -0
- package/src/impact/writer.js +30 -0
- package/src/impact-evidence/input-loader.js +202 -0
- package/src/impact-evidence/repository-impact-evidence.js +234 -0
- package/src/impact-evidence/runtime.js +16 -0
- package/src/impact-evidence/writer.js +30 -0
- package/src/index.js +563 -0
- package/src/installed-version-baseline.js +196 -0
- package/src/knowledge-cache.js +324 -0
- package/src/knowledge-evidence-bundle.js +101 -0
- package/src/knowledge-evidence-producer.js +233 -0
- package/src/knowledge-manifest-builder.js +188 -0
- package/src/knowledge-manifest-writer.js +32 -0
- package/src/knowledge-manifest.js +255 -0
- package/src/knowledge-research.js +615 -0
- package/src/metrics-engine.js +205 -0
- package/src/migration-checklist/ai-candidate.js +320 -0
- package/src/migration-checklist/assembler.js +37 -0
- package/src/migration-checklist/context-runtime.js +828 -0
- package/src/migration-checklist/evaluation/action-criteria.js +244 -0
- package/src/migration-checklist/evaluation/comparator-v2.js +332 -0
- package/src/migration-checklist/evaluation/comparator.js +279 -0
- package/src/migration-checklist/evaluation/dataset-v2.js +227 -0
- package/src/migration-checklist/evaluation/dataset.js +336 -0
- package/src/migration-checklist/evaluation/extractive-fixtures-v2.js +148 -0
- package/src/migration-checklist/evaluation/metrics-v2.js +226 -0
- package/src/migration-checklist/evaluation/metrics.js +158 -0
- package/src/migration-checklist/evaluation/qualification-v2.js +321 -0
- package/src/migration-checklist/evaluation/qualification.js +239 -0
- package/src/migration-checklist/evaluation/runner-v2.js +294 -0
- package/src/migration-checklist/evaluation/runner.js +194 -0
- package/src/migration-checklist/evaluation/scorecard-v2.js +106 -0
- package/src/migration-checklist/evaluation/scorecard.js +86 -0
- package/src/migration-checklist/extractive-candidate.js +166 -0
- package/src/migration-checklist/extractive-prompt.js +62 -0
- package/src/migration-checklist/generator.js +702 -0
- package/src/migration-checklist/grounding-policy.js +117 -0
- package/src/migration-checklist/input-loader.js +613 -0
- package/src/migration-checklist/migration-checklist.js +635 -0
- package/src/migration-checklist/presentation.js +292 -0
- package/src/migration-checklist/progress.js +96 -0
- package/src/migration-checklist/prompt.js +83 -0
- package/src/migration-checklist/qualification-guard.js +462 -0
- package/src/migration-checklist/qualification-resolution.js +122 -0
- package/src/migration-checklist/qualification-store.js +225 -0
- package/src/migration-checklist/runtime.js +205 -0
- package/src/migration-checklist/verification.js +134 -0
- package/src/migration-checklist/writer.js +35 -0
- package/src/openai-compatible-provider.js +451 -0
- package/src/orchestration/failure-log.js +32 -0
- package/src/orchestration/pipeline.js +200 -0
- package/src/orchestration/progress-events.js +337 -0
- package/src/orchestration/progress-reporter.js +131 -0
- package/src/orchestration/text-writer.js +22 -0
- package/src/portable.js +13 -0
- package/src/product-completion.js +249 -0
- package/src/project-manifest-input.js +90 -0
- package/src/project-manifest.js +141 -0
- package/src/python-requirements.js +137 -0
- package/src/registry/npm-packument.js +256 -0
- package/src/registry/npm-registry-adapter.js +262 -0
- package/src/registry/pypi-project.js +300 -0
- package/src/registry/pypi-registry-adapter.js +235 -0
- package/src/registry/sanitize-registry-body.js +51 -0
- package/src/renderers/console.js +160 -0
- package/src/renderers/impact-presentation.js +278 -0
- package/src/renderers/markdown.js +172 -0
- package/src/research-plan.js +455 -0
- package/src/runtime-conformance.js +275 -0
- package/src/source-provenance.js +393 -0
- package/src/source-url.js +62 -0
- package/src/structured-output-schema.js +66 -0
- package/src/target-selector.js +306 -0
- package/src/upgrade-decision/input-loader.js +107 -0
- package/src/upgrade-decision/presentation.js +43 -0
- package/src/upgrade-decision/runtime.js +21 -0
- package/src/upgrade-decision/upgrade-decision.js +626 -0
- package/src/upgrade-decision/writer.js +30 -0
- package/src/usage/analyzer-registry.js +63 -0
- package/src/usage/coverage.js +116 -0
- package/src/usage/input-loader.js +139 -0
- package/src/usage/js/analyzer.js +240 -0
- package/src/usage/js/parser.js +21 -0
- package/src/usage/runtime.js +187 -0
- package/src/usage/scope.js +44 -0
- package/src/usage/source-files.js +50 -0
- package/src/usage/usage-index.js +217 -0
- package/src/usage/writer.js +31 -0
- package/src/version-analysis-loader.js +203 -0
- package/src/version-analysis-manifest.js +314 -0
- package/src/version-analysis-writer.js +30 -0
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
# DIFF-04-RERUN — DepVerdict Repository & Distribution Identity Readiness Review
|
|
2
|
+
|
|
3
|
+
Review completed: 2026-07-19T13:54:53Z
|
|
4
|
+
Review role: independent release-readiness review
|
|
5
|
+
Provider calls: 0
|
|
6
|
+
|
|
7
|
+
## 1. Executive verdict and gate
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
Verdict: DEPVERDICT_REPOSITORY_DISTRIBUTION_IDENTITY_READY
|
|
11
|
+
Gate: PROCEED_TO_DIFF_05_FINAL_PREVIEW_DISTRIBUTION_QUALIFICATION
|
|
12
|
+
Candidate SHA: 001dd5ec9db4aa292228809ed129fb7d2db9756d
|
|
13
|
+
Blocker defects: 0
|
|
14
|
+
High defects: 0
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
The exact local, remote, pull-request, hosted-CI, and package candidate identity
|
|
18
|
+
is correlated. The repository and current operational metadata use DepVerdict
|
|
19
|
+
directly. All four required hosted jobs passed. Historical Releases are again
|
|
20
|
+
truthful UpgradeLens records with a direct DepVerdict rename notice, and the
|
|
21
|
+
approved repair preserved the recorded release identities, refs, states,
|
|
22
|
+
created/published timestamps, and zero-asset inventories.
|
|
23
|
+
|
|
24
|
+
The incomplete pre-rename release/asset before-state remains explicitly bounded
|
|
25
|
+
and must not be described as proven. The maintainer accepted that irrecoverable
|
|
26
|
+
evidence gap in
|
|
27
|
+
`docs/decisions/diff-04-release-evidence-gap-acceptance.md`; the exact
|
|
28
|
+
DIFF-04-FIX operation itself has a retained pre-edit and post-edit inventory.
|
|
29
|
+
|
|
30
|
+
## 2. Exact SHA correlation
|
|
31
|
+
|
|
32
|
+
| Identity | Result |
|
|
33
|
+
| --- | --- |
|
|
34
|
+
| Local branch | `feat/depverdict-rebrand` |
|
|
35
|
+
| Local HEAD | `001dd5ec9db4aa292228809ed129fb7d2db9756d` |
|
|
36
|
+
| Local commit | `001dd5e fix: complete DepVerdict distribution identity migration` |
|
|
37
|
+
| Remote branch | `origin/feat/depverdict-rebrand` = `001dd5ec9db4aa292228809ed129fb7d2db9756d` |
|
|
38
|
+
| Pull request | `#11`, open, `feat/depverdict-rebrand` → `develop` |
|
|
39
|
+
| PR head | `001dd5ec9db4aa292228809ed129fb7d2db9756d` |
|
|
40
|
+
| PR base | `develop` = `764591ec808bee7e2ff34870c5452b7dbf1e8ad9` |
|
|
41
|
+
| Default branch | `main` = `c91fbb0032b0e2f6209cb4a14aeeb68d9cf0c28d` |
|
|
42
|
+
| Merged/default candidate | Not applicable; PR `#11` is open and unmerged |
|
|
43
|
+
| Hosted workflow run | `29689431987` at `001dd5ec9db4aa292228809ed129fb7d2db9756d` |
|
|
44
|
+
| Package candidate | Clean local clone detached at `001dd5ec9db4aa292228809ed129fb7d2db9756d` |
|
|
45
|
+
|
|
46
|
+
The candidate clone did not include the pre-existing local rereview report,
|
|
47
|
+
RR02 captures, duplicate-suffix captures, tarballs, or temporary review data.
|
|
48
|
+
Those existing worktree files were inventoried and preserved.
|
|
49
|
+
|
|
50
|
+
## 3. Hosted workflow, run, and job evidence
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
Workflow: DepVerdict CI
|
|
54
|
+
Run ID: 29689431987
|
|
55
|
+
Run number / attempt: 10 / 1
|
|
56
|
+
Event: pull_request
|
|
57
|
+
Status / conclusion: completed / success
|
|
58
|
+
Head branch: feat/depverdict-rebrand
|
|
59
|
+
Head SHA: 001dd5ec9db4aa292228809ed129fb7d2db9756d
|
|
60
|
+
Created: 2026-07-19T13:43:38Z
|
|
61
|
+
Completed: 2026-07-19T13:44:42Z
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
| Job | Job ID | Result | Completed (UTC) |
|
|
65
|
+
| --- | ---: | --- | --- |
|
|
66
|
+
| Node 20 | `88199427909` | PASS | `2026-07-19T13:44:41Z` |
|
|
67
|
+
| Node 22 | `88199427892` | PASS | `2026-07-19T13:44:33Z` |
|
|
68
|
+
| Node 24 | `88199427898` | PASS | `2026-07-19T13:44:21Z` |
|
|
69
|
+
| Package smoke (Node 24) | `88199427915` | PASS | `2026-07-19T13:43:56Z` |
|
|
70
|
+
|
|
71
|
+
No required job was missing, pending, skipped, or failed. Workflow inspection
|
|
72
|
+
also verified:
|
|
73
|
+
|
|
74
|
+
- repository permission is only `contents: read`;
|
|
75
|
+
- checkout uses `persist-credentials: false`;
|
|
76
|
+
- official actions are pinned to full commit SHAs;
|
|
77
|
+
- the workflow uses `pull_request`, never `pull_request_target`;
|
|
78
|
+
- provider and authorization environment values are explicitly empty;
|
|
79
|
+
- no `secrets.*`, publish, release, tag, push, deployment, or writeback step
|
|
80
|
+
exists;
|
|
81
|
+
- the exact run uploaded zero Actions artifacts.
|
|
82
|
+
|
|
83
|
+
## 4. Repository identity and redirect
|
|
84
|
+
|
|
85
|
+
| Check | Result |
|
|
86
|
+
| --- | --- |
|
|
87
|
+
| Canonical web URL | PASS; HTTP 200 |
|
|
88
|
+
| API owner/name | PASS; `thomasMinh1995/DepVerdict` |
|
|
89
|
+
| Repository ID | `1299421234`; node ID `R_kgDOTXOYMg` |
|
|
90
|
+
| Visibility/state | Public, unarchived, enabled |
|
|
91
|
+
| Default branch | `main` |
|
|
92
|
+
| Local `origin` | `https://github.com/thomasMinh1995/DepVerdict.git` for fetch and push |
|
|
93
|
+
| Former URL | PASS; HTTP 301 directly to `https://github.com/thomasMinh1995/DepVerdict` |
|
|
94
|
+
| Branches | PASS; nine branches visible, including `main`, `develop`, and the candidate branch |
|
|
95
|
+
| Pull requests | PASS; PR history `#1`–`#11` accessible |
|
|
96
|
+
| Issues | PASS; no separate public issue was present |
|
|
97
|
+
| Actions | PASS; exact candidate run and jobs accessible |
|
|
98
|
+
| Tags | PASS; exactly `v0.1.1` through `v0.5.0` accessible |
|
|
99
|
+
| Discussions | Disabled; non-blocking preview limitation |
|
|
100
|
+
|
|
101
|
+
No retained pre-rename numeric repository-ID capture was found. Current Git
|
|
102
|
+
history, refs, branches, PRs, Releases, Actions, and the direct redirect support
|
|
103
|
+
continuity, but this review does not turn that into a numeric before/after ID
|
|
104
|
+
proof.
|
|
105
|
+
|
|
106
|
+
## 5. Security and community routes
|
|
107
|
+
|
|
108
|
+
The authenticated read-only GitHub endpoint
|
|
109
|
+
`/repos/thomasMinh1995/DepVerdict/private-vulnerability-reporting` returned
|
|
110
|
+
`{"enabled":true}`.
|
|
111
|
+
|
|
112
|
+
- `SECURITY.md` and both Issue Form routes point directly to
|
|
113
|
+
`https://github.com/thomasMinh1995/DepVerdict/security/advisories/new`.
|
|
114
|
+
- Public issue forms warn users not to disclose secrets, private source,
|
|
115
|
+
captures, or provider payloads.
|
|
116
|
+
- `SUPPORT.md` keeps security and sensitive conduct reports off public issues.
|
|
117
|
+
- `CODE_OF_CONDUCT.md` uses the verified private
|
|
118
|
+
`upgradelens.conduct@gmail.com` address and labels it as a temporary
|
|
119
|
+
legacy-named `0.6.x` transition route.
|
|
120
|
+
- PR and issue templates use DepVerdict identity.
|
|
121
|
+
|
|
122
|
+
The legacy-named conduct mailbox is a Medium transition limitation, not a High
|
|
123
|
+
defect for this preview.
|
|
124
|
+
|
|
125
|
+
## 6. GitHub Release inventory and classification
|
|
126
|
+
|
|
127
|
+
The API returned exactly five published historical releases, all with zero
|
|
128
|
+
assets. No `v0.6.0-alpha.1` tag, draft, or release exists.
|
|
129
|
+
|
|
130
|
+
| Release ID | Tag / peeled target | Current title | Draft / prerelease | Created / published / updated (UTC) | Assets |
|
|
131
|
+
| ---: | --- | --- | --- | --- | ---: |
|
|
132
|
+
| `353312307` | `v0.1.1` / `95cd3025c27d2c4d8e97f711625541ee0da7dbc0` | `UpgradeLens v0.1.1 — MVP-01 Project Discovery Foundation` | false / false | `2026-07-13T17:10:16Z` / `17:16:09Z` / `2026-07-19T11:17:07Z` | 0 |
|
|
133
|
+
| `353747096` | `v0.2.0` / `411c9e6216d9476b48d72311c9163b2a563d1e60` | `UpgradeLens v0.2.0 — Knowledge Research` | false / false | `2026-07-14T11:12:11Z` / `11:22:02Z` / `2026-07-19T11:17:46Z` | 0 |
|
|
134
|
+
| `354822066` | `v0.3.0` / `8fea8ec5b06dd6c85a0f600be1d566d65ef2c7a2` | `UpgradeLens v0.3.0 — AI Version Analysis` | false / false | `2026-07-16T01:40:55Z` / `01:43:27Z` / `2026-07-19T11:17:47Z` | 0 |
|
|
135
|
+
| `355150303` | `v0.4.0` / `734be0b9395b0bd74454badc010e4df237319cc3` | `UpgradeLens v0.4.0 — Repository Impact Analytics` | false / false | `2026-07-16T14:33:06Z` / `14:35:09Z` / `2026-07-19T11:17:48Z` | 0 |
|
|
136
|
+
| `356244177` | `v0.5.0` / `74d57344db254d0109ea951dc7c44853cdad9be0` | `UpgradeLens v0.5.0 — Evidence-Bounded Migration Planning` | false / false | `2026-07-19T02:55:33Z` / `02:56:50Z` / `2026-07-19T11:17:48Z` | 0 |
|
|
137
|
+
|
|
138
|
+
Each body:
|
|
139
|
+
|
|
140
|
+
- states that the release was originally published under UpgradeLens;
|
|
141
|
+
- identifies the project as now DepVerdict;
|
|
142
|
+
- links directly to `https://github.com/thomasMinh1995/DepVerdict`;
|
|
143
|
+
- states that the historical release remains associated with its original tag
|
|
144
|
+
and commit;
|
|
145
|
+
- contains no dependency on the former repository URL.
|
|
146
|
+
|
|
147
|
+
Classification: PASS. The releases are truthful historical UpgradeLens records,
|
|
148
|
+
not retroactively presented as DepVerdict releases.
|
|
149
|
+
|
|
150
|
+
## 7. Release immutability evidence and limitations
|
|
151
|
+
|
|
152
|
+
The post-edit body bytes exactly match the accepted candidate inventory:
|
|
153
|
+
|
|
154
|
+
| ID / tag | Body bytes | Body SHA-256 |
|
|
155
|
+
| --- | ---: | --- |
|
|
156
|
+
| `353312307` / `v0.1.1` | 2227 | `17c9f1ece26eb1f6af20fb438b800d0cd74f3117aea979566ebb5b16b11c28e1` |
|
|
157
|
+
| `353747096` / `v0.2.0` | 4588 | `32af0823ca8199a5c041b48ceb4b126d9a0cdec369128463f4da5e9d2d560411` |
|
|
158
|
+
| `354822066` / `v0.3.0` | 823 | `8b264cb667a555c392f9e688e49fbf91e8145beec19ef76d2b4edb5c1eef7262` |
|
|
159
|
+
| `355150303` / `v0.4.0` | 1335 | `b71c108f31b1cb31d331cb89bda5fd5aec8fa63ca857d3b86825cd69c3383ff3` |
|
|
160
|
+
| `356244177` / `v0.5.0` | 990 | `0d556e775bff4c27e16b0090b1203d4d09567d0c3e3d8b28ce353cee16e54eba` |
|
|
161
|
+
|
|
162
|
+
For the explicitly approved DIFF-04-FIX operation, the retained pre-edit and
|
|
163
|
+
post-edit inventories prove:
|
|
164
|
+
|
|
165
|
+
- release IDs and tags are unchanged;
|
|
166
|
+
- annotated tag objects and peeled commits are unchanged;
|
|
167
|
+
- `target_commitish` remains `main`;
|
|
168
|
+
- draft/prerelease states are unchanged;
|
|
169
|
+
- created and published timestamps are unchanged;
|
|
170
|
+
- asset arrays remained empty;
|
|
171
|
+
- only approved titles/bodies changed;
|
|
172
|
+
- GitHub-managed `updated_at` changed as the direct consequence of those
|
|
173
|
+
title/body edits and was not included in any PATCH payload;
|
|
174
|
+
- no release or tag was created, deleted, moved, or recreated.
|
|
175
|
+
|
|
176
|
+
Bounded limitation: no complete release-ID/state/timestamp/asset inventory was
|
|
177
|
+
retained from before the repository rename and the earlier misleading metadata
|
|
178
|
+
edits. The accepted evidence-gap decision explicitly classifies that before-state
|
|
179
|
+
as unknown and does not claim that assets never existed or never changed.
|
|
180
|
+
`v0.5.0` tag object/target continuity and publication state are independently
|
|
181
|
+
proven by retained DIFF-01 evidence. Earlier tag agreement and current zero-asset
|
|
182
|
+
state are supported by current state only.
|
|
183
|
+
|
|
184
|
+
This bounded, explicitly accepted limitation passes the present remediation gate
|
|
185
|
+
without being converted into an immutability claim.
|
|
186
|
+
|
|
187
|
+
## 8. Package metadata and npm identity
|
|
188
|
+
|
|
189
|
+
| Field | Candidate | Result |
|
|
190
|
+
| --- | --- | --- |
|
|
191
|
+
| `name` | `@thomasminh1995/depverdict` | PASS |
|
|
192
|
+
| `version` | `0.6.0-alpha.1` | PASS |
|
|
193
|
+
| description | decision-first, evidence-bounded dependency upgrade analysis | PASS |
|
|
194
|
+
| repository | `git+https://github.com/thomasMinh1995/DepVerdict.git` | PASS |
|
|
195
|
+
| homepage | `https://github.com/thomasMinh1995/DepVerdict#readme` | PASS |
|
|
196
|
+
| bugs | `https://github.com/thomasMinh1995/DepVerdict/issues` | PASS |
|
|
197
|
+
| canonical bin | `depverdict` → `bin/depverdict.js` | PASS |
|
|
198
|
+
| legacy bin | `upgradelens` → `bin/upgradelens.js` | PASS |
|
|
199
|
+
| engine | Node `>=20` | PASS |
|
|
200
|
+
|
|
201
|
+
The normalized dry-run and actual tarball retain those exact fields. Both bin
|
|
202
|
+
files are present with mode `0755`.
|
|
203
|
+
|
|
204
|
+
Public npm registry evidence before and after the publish dry run:
|
|
205
|
+
|
|
206
|
+
- `@thomasminh1995/depverdict`: HTTP 404; no version, `latest`, `preview`, or
|
|
207
|
+
dist-tag exists;
|
|
208
|
+
- external `upgrade-lens`: `1.0.2` under `latest`, maintained by `zjpctt`, with
|
|
209
|
+
repository `zjp123/UpgradeDepDetective-`;
|
|
210
|
+
- DepVerdict did not publish, mutate, or claim that external package.
|
|
211
|
+
|
|
212
|
+
Authenticated npm scope ownership was not available and is assigned to the
|
|
213
|
+
DIFF-05 pre-publication gate. No credential was requested or displayed.
|
|
214
|
+
|
|
215
|
+
## 9. Normative and legacy identity scan
|
|
216
|
+
|
|
217
|
+
| Classification | Representative results | Assessment |
|
|
218
|
+
| --- | --- | --- |
|
|
219
|
+
| Current normative DepVerdict identity | package URLs, README/CONTRIBUTING clone commands, security routes, Issue Forms, preview draft | PASS |
|
|
220
|
+
| Approved legacy compatibility | `upgradelens` bin, `.upgradelens/` complete-chain reads, `UPGRADELENS_*` fallback | PASS |
|
|
221
|
+
| Truthful historical record | frozen prior reports, historical release notes, protocol/schema identities | PASS |
|
|
222
|
+
| Migration documentation | former repository redirect, CLI/root/env compatibility map | PASS |
|
|
223
|
+
| Frozen protocol/test identity | `generator.name: "UpgradeLens"`, bounded prompts, fixtures, reason/task IDs | PASS |
|
|
224
|
+
| Stale normative identity | none found in inspected operational surfaces | PASS |
|
|
225
|
+
|
|
226
|
+
The former repository URL remains only in migration or explicitly dated
|
|
227
|
+
historical context. Current operational links do not rely on its redirect.
|
|
228
|
+
Repository identity tests, current Markdown link/fence checks, package metadata
|
|
229
|
+
tests, and release-remediation tests all passed.
|
|
230
|
+
|
|
231
|
+
## 10. Compatibility behavior
|
|
232
|
+
|
|
233
|
+
Focused command:
|
|
234
|
+
|
|
235
|
+
```text
|
|
236
|
+
node --test
|
|
237
|
+
test/identity-compatibility.test.js
|
|
238
|
+
test/migration-qualification-resolution.test.js
|
|
239
|
+
test/ci-workflow-metadata.test.js
|
|
240
|
+
test/repository-docs-identity.test.js
|
|
241
|
+
test/release-identity-remediation.test.js
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Result: 36 passed, 0 failed, 0 skipped.
|
|
245
|
+
|
|
246
|
+
Verified behavior:
|
|
247
|
+
|
|
248
|
+
- `depverdict` is canonical;
|
|
249
|
+
- `upgradelens` writes equivalent canonical artifacts;
|
|
250
|
+
- its warning is stderr-only and bounded once per process state;
|
|
251
|
+
- legacy `--stdout` stays machine-readable JSON;
|
|
252
|
+
- `.depverdict/` is the write root;
|
|
253
|
+
- a complete `.upgradelens/` chain may be read as fallback;
|
|
254
|
+
- split canonical/legacy chains fail closed with `ARTIFACT_ROOT_CONFLICT`;
|
|
255
|
+
- precedence is explicit option → `DEPVERDICT_*` → `UPGRADELENS_*` → default;
|
|
256
|
+
- secret values are not printed;
|
|
257
|
+
- schemas, task IDs, reason codes, and historical artifacts remain compatible;
|
|
258
|
+
- public export count remains 438.
|
|
259
|
+
|
|
260
|
+
## 11. Canonical suite and package guard
|
|
261
|
+
|
|
262
|
+
The exact candidate was tested in a clean clone detached at
|
|
263
|
+
`001dd5ec9db4aa292228809ed129fb7d2db9756d`.
|
|
264
|
+
|
|
265
|
+
| Check | Result |
|
|
266
|
+
| --- | --- |
|
|
267
|
+
| `npm ci --ignore-scripts` | PASS; 11 dependencies installed |
|
|
268
|
+
| `npm run check` | PASS |
|
|
269
|
+
| Canonical tests | 651 total; 650 pass; 0 fail; 1 sandbox loopback skip |
|
|
270
|
+
| `npm run check:package` | PASS |
|
|
271
|
+
| Package guard | 250 files; 0 suspicious artifacts; 32 required assets |
|
|
272
|
+
| `git diff --check` | PASS |
|
|
273
|
+
| Clean candidate status | PASS; no source modifications |
|
|
274
|
+
|
|
275
|
+
The known local skip is the real loopback listener check unavailable in the
|
|
276
|
+
execution sandbox. It is unrelated to distribution identity, and the same
|
|
277
|
+
canonical suite passed in the exact-SHA hosted Node jobs.
|
|
278
|
+
|
|
279
|
+
## 12. Tarball manifest, digest, and clean install
|
|
280
|
+
|
|
281
|
+
Dry-run and two actual isolated-cache packs produced identical metadata and
|
|
282
|
+
byte-identical tarballs:
|
|
283
|
+
|
|
284
|
+
```text
|
|
285
|
+
name: @thomasminh1995/depverdict
|
|
286
|
+
version: 0.6.0-alpha.1
|
|
287
|
+
filename: thomasminh1995-depverdict-0.6.0-alpha.1.tgz
|
|
288
|
+
files: 250
|
|
289
|
+
packed bytes: 664399
|
|
290
|
+
unpacked bytes: 2553288
|
|
291
|
+
npm shasum: 992d406797fc8741139bf8f14cfe172c327d8129
|
|
292
|
+
npm integrity: sha512-P6g1ryzFDsGd1/0BI0qOoGP24Z3wqg4wS+5t4dENbEFoDsFq8ZFczqq1u0//7x9wzc71D4u4lIJ9U9l6XpPTAg==
|
|
293
|
+
SHA-256: b2d11b6c9caf95a7e77035bb99edd8fb31d8597c6e91441d47a2cbc066fccc48
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
The official clean-install smoke passed:
|
|
297
|
+
|
|
298
|
+
```text
|
|
299
|
+
Package smoke passed:
|
|
300
|
+
@thomasminh1995/depverdict@0.6.0-alpha.1
|
|
301
|
+
250 extracted files
|
|
302
|
+
32 required assets
|
|
303
|
+
438 public exports
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
Additional isolated consumer checks passed:
|
|
307
|
+
|
|
308
|
+
- `depverdict --version` and `--help`;
|
|
309
|
+
- `upgradelens --version` and `--help` with stderr deprecation warning;
|
|
310
|
+
- ESM import with 438 public exports;
|
|
311
|
+
- package schema JSON loading;
|
|
312
|
+
- Migration Planning qualification-record loading;
|
|
313
|
+
- `.upgradelens/` qualification fallback with
|
|
314
|
+
`LEGACY_ARTIFACT_ROOT_USED`;
|
|
315
|
+
- mismatched qualification identity remained fail-closed as
|
|
316
|
+
`IDENTITY_MISMATCH`.
|
|
317
|
+
|
|
318
|
+
RR02 captures, `.depverdict/`, `.upgradelens/`, credentials, `.env` files,
|
|
319
|
+
duplicate copies, local paths, and nested tarballs were excluded by the clean
|
|
320
|
+
candidate and package guard.
|
|
321
|
+
|
|
322
|
+
## 13. npm dry run and no-publication confirmation
|
|
323
|
+
|
|
324
|
+
The only publish-shaped command was:
|
|
325
|
+
|
|
326
|
+
```text
|
|
327
|
+
npm publish --dry-run --access public --tag preview --ignore-scripts --json
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
It normalized the exact candidate as public
|
|
331
|
+
`@thomasminh1995/depverdict@0.6.0-alpha.1`, tag `preview`, 250 files, with the
|
|
332
|
+
same size and digests as the actual qualification pack. The public registry
|
|
333
|
+
returned HTTP 404 before and after the command.
|
|
334
|
+
|
|
335
|
+
No package was published. No `latest` or `preview` dist-tag was created or moved.
|
|
336
|
+
|
|
337
|
+
## 14. Product positioning
|
|
338
|
+
|
|
339
|
+
PASS. Current public content consistently positions DepVerdict as:
|
|
340
|
+
|
|
341
|
+
- Public Technical Preview / Alpha;
|
|
342
|
+
- decision-first dependency upgrade analysis;
|
|
343
|
+
- deterministic policy rather than registry-latest recommendation;
|
|
344
|
+
- evidence-bounded, human-reviewed migration handoff;
|
|
345
|
+
- strongest current coverage in JS/TS and npm with explicit limits;
|
|
346
|
+
- experimental opt-in Migration Checklist;
|
|
347
|
+
- provider/model/runtime qualification bound to exact evidence.
|
|
348
|
+
|
|
349
|
+
No current product surface claims autonomous source migration, guaranteed
|
|
350
|
+
safety, equal support for every ecosystem, universal provider qualification,
|
|
351
|
+
production stability, general availability, or npm `latest`.
|
|
352
|
+
|
|
353
|
+
## 15. Provider-call count
|
|
354
|
+
|
|
355
|
+
```text
|
|
356
|
+
Provider calls: 0
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
Local and hosted checks used deterministic fixtures, fakes, local test doubles,
|
|
360
|
+
or empty provider configuration. No real AI provider was contacted.
|
|
361
|
+
|
|
362
|
+
## 16. Blocked, skipped, and limited checks
|
|
363
|
+
|
|
364
|
+
- LIMITED: complete pre-rename release-ID/state/timestamp/asset before-state was
|
|
365
|
+
not retained. The accepted decision records the gap without claiming proof.
|
|
366
|
+
- LIMITED: authenticated npm scope ownership was unavailable; it must be checked
|
|
367
|
+
by the maintainer at DIFF-05 without sharing credentials.
|
|
368
|
+
- LIMITED: no pre-rename numeric repository ID was retained.
|
|
369
|
+
- NOT APPLICABLE: candidate SHA on merged/default branch; PR `#11` remains open.
|
|
370
|
+
- NOT APPLICABLE: remote `v0.6.0-alpha.1` release classification; no such tag,
|
|
371
|
+
draft, or release exists.
|
|
372
|
+
- SKIPPED LOCALLY: one loopback listener test due to sandbox restrictions; exact
|
|
373
|
+
hosted Node 20/22/24 jobs passed.
|
|
374
|
+
- ENVIRONMENT RETRY: the first pack attempt used an unwritable global npm cache;
|
|
375
|
+
the required isolated-cache rerun passed.
|
|
376
|
+
- ENVIRONMENT RETRY: an unprivileged clean-install attempt was interrupted while
|
|
377
|
+
sandbox networking blocked dependency retrieval; the network-enabled isolated
|
|
378
|
+
rerun passed.
|
|
379
|
+
|
|
380
|
+
## 17. Defects by severity
|
|
381
|
+
|
|
382
|
+
### Blocker
|
|
383
|
+
|
|
384
|
+
None.
|
|
385
|
+
|
|
386
|
+
### High
|
|
387
|
+
|
|
388
|
+
None.
|
|
389
|
+
|
|
390
|
+
### Medium
|
|
391
|
+
|
|
392
|
+
1. The verified conduct mailbox retains the former product name for one bounded
|
|
393
|
+
preview transition.
|
|
394
|
+
2. Authenticated npm scope ownership remains a DIFF-05 pre-publication check.
|
|
395
|
+
3. Branch protection is not enabled on the public branch inventory.
|
|
396
|
+
4. Discussions are disabled.
|
|
397
|
+
5. Complete pre-rename release/asset and numeric repository-ID evidence is
|
|
398
|
+
unavailable and must remain explicitly bounded.
|
|
399
|
+
|
|
400
|
+
### Low
|
|
401
|
+
|
|
402
|
+
None material beyond documented preview limitations.
|
|
403
|
+
|
|
404
|
+
## 18. Exact files created or changed by this review
|
|
405
|
+
|
|
406
|
+
Created or replaced:
|
|
407
|
+
|
|
408
|
+
```text
|
|
409
|
+
docs/reviews/diff-04-depverdict-distribution-identity-readiness-rereview.md
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
No other tracked file was changed. Temporary clones, npm caches, tarballs, and
|
|
413
|
+
consumer installs were created only below `/tmp`. Pre-existing RR02 captures
|
|
414
|
+
were not edited, staged, or packaged.
|
|
415
|
+
|
|
416
|
+
## 19. Final acceptance matrix
|
|
417
|
+
|
|
418
|
+
| Area | Result | Evidence / reason |
|
|
419
|
+
| --- | --- | --- |
|
|
420
|
+
| Exact SHA | PASS | local, remote branch, PR head, hosted run, and package candidate are `001dd5e…`; default branch recorded separately |
|
|
421
|
+
| Hosted CI | PASS | Node 20/22/24 and package smoke succeeded in run `29689431987` |
|
|
422
|
+
| Repository | PASS | canonical owner/URL valid; former URL redirects; history and resources accessible |
|
|
423
|
+
| Local remote | PASS | `origin` directly uses DepVerdict |
|
|
424
|
+
| Security | PASS | PVR enabled; canonical private routes in current docs and forms |
|
|
425
|
+
| Releases | PASS | five historical releases are truthful UpgradeLens records with direct DepVerdict notices |
|
|
426
|
+
| Release history | PASS | exact approved repair preserved recorded IDs, tags, targets, states, created/published times, and zero assets; older evidence gap remains accepted and bounded |
|
|
427
|
+
| Package | PASS | scoped name/version/description/metadata and both bins are correct |
|
|
428
|
+
| CLI | PASS | canonical and legacy installed shims work; warning is bounded and stderr-only |
|
|
429
|
+
| Docs | PASS | no stale normative identity or redirect-dependent operational URL |
|
|
430
|
+
| Compatibility | PASS | root/env/artifact fallbacks remain deterministic and fail closed |
|
|
431
|
+
| Package guard | PASS | 250 files, 0 suspicious, 32 required assets |
|
|
432
|
+
| Clean install | PASS | CLI/help/version/import/schema/qualification checks pass |
|
|
433
|
+
| npm preflight | PASS | public preview dry run only; registry remained 404; authenticated ownership deferred to DIFF-05 |
|
|
434
|
+
| Positioning | PASS | bounded Technical Preview claims |
|
|
435
|
+
| Provider calls | PASS | zero |
|
|
436
|
+
|
|
437
|
+
## 20. Final verdict and recommended next task
|
|
438
|
+
|
|
439
|
+
```text
|
|
440
|
+
Verdict: DEPVERDICT_REPOSITORY_DISTRIBUTION_IDENTITY_READY
|
|
441
|
+
Gate: PROCEED_TO_DIFF_05_FINAL_PREVIEW_DISTRIBUTION_QUALIFICATION
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
Recommended next task:
|
|
445
|
+
|
|
446
|
+
```text
|
|
447
|
+
DIFF-05 — Final preview distribution qualification
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
That task should obtain authenticated maintainer-only npm scope ownership
|
|
451
|
+
evidence, repeat exact-candidate pack/install checks, and prepare the separately
|
|
452
|
+
approved `preview` publication decision. This review does not authorize merge,
|
|
453
|
+
tag mutation, Release creation/editing, npm publication, or dist-tag mutation.
|