devtime-ei 0.3.0__tar.gz → 0.4.0__tar.gz

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.
Files changed (77) hide show
  1. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/PKG-INFO +2 -2
  2. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/pyproject.toml +2 -2
  3. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/__init__.py +1 -1
  4. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/cli.py +18 -0
  5. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/verification.py +32 -0
  6. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime_ei.egg-info/PKG-INFO +2 -2
  7. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/LICENSE +0 -0
  8. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/README.md +0 -0
  9. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/setup.cfg +0 -0
  10. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/ai/__init__.py +0 -0
  11. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/ai/local.py +0 -0
  12. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/ai/prompts.py +0 -0
  13. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/ai/providers.py +0 -0
  14. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/assets/devtimeignore.starter +0 -0
  15. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/config.py +0 -0
  16. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/db/__init__.py +0 -0
  17. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/db/connection.py +0 -0
  18. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/db/migrations.py +0 -0
  19. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/db/repository.py +0 -0
  20. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/db/schema.sql +0 -0
  21. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/demo.py +0 -0
  22. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/fixtures/__init__.py +0 -0
  23. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/fixtures/assertions.py +0 -0
  24. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/fixtures/loader.py +0 -0
  25. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/fixtures/runner.py +0 -0
  26. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/__init__.py +0 -0
  27. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/claims.py +0 -0
  28. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/concepts.py +0 -0
  29. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/context_pack.py +0 -0
  30. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/evidence.py +0 -0
  31. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/lineage.py +0 -0
  32. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/risk.py +0 -0
  33. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/scoring.py +0 -0
  34. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/mcp/__init__.py +0 -0
  35. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/mcp/schemas.py +0 -0
  36. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/mcp/server.py +0 -0
  37. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/mcp/tools.py +0 -0
  38. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/mcp/transport.py +0 -0
  39. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/output/__init__.py +0 -0
  40. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/output/json_export.py +0 -0
  41. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/output/markdown.py +0 -0
  42. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/output/terminal.py +0 -0
  43. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/paths.py +0 -0
  44. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/privacy.py +0 -0
  45. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/.devtimeignore +0 -0
  46. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/README.md +0 -0
  47. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/docs/decisions/0001-use-jwt.md +0 -0
  48. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/package.json +0 -0
  49. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/admin/permissions.ts +0 -0
  50. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/auth/login.ts +0 -0
  51. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/auth/middleware.ts +0 -0
  52. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/auth/tokens.ts +0 -0
  53. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/billing/stripe-webhook.ts +0 -0
  54. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/billing/subscription-service.ts +0 -0
  55. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/export/export-csv.ts +0 -0
  56. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/jobs/email-worker.ts +0 -0
  57. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/jobs/queues.ts +0 -0
  58. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/tests/auth-login.test.ts +0 -0
  59. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/tests/stripe-signature.test.ts +0 -0
  60. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/__init__.py +0 -0
  61. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/__init__.py +0 -0
  62. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/base.py +0 -0
  63. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/config_files.py +0 -0
  64. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/docs.py +0 -0
  65. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/nextjs.py +0 -0
  66. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/python.py +0 -0
  67. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/tests.py +0 -0
  68. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/typescript.py +0 -0
  69. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/file_walker.py +0 -0
  70. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/ignore.py +0 -0
  71. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/language.py +0 -0
  72. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/signals.py +0 -0
  73. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime_ei.egg-info/SOURCES.txt +0 -0
  74. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime_ei.egg-info/dependency_links.txt +0 -0
  75. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime_ei.egg-info/entry_points.txt +0 -0
  76. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime_ei.egg-info/requires.txt +0 -0
  77. {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime_ei.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devtime-ei
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: Local-first Engineering Intelligence for software repositories
5
5
  Author-email: Aviad Shakargi <aviad94@gmail.com>
6
6
  Maintainer-email: Aviad Shakargi <aviad94@gmail.com>
@@ -8,7 +8,7 @@ License: Apache-2.0
8
8
  Project-URL: Homepage, https://github.com/Shakargy/devtime
9
9
  Project-URL: Repository, https://github.com/Shakargy/devtime
10
10
  Project-URL: Issues, https://github.com/Shakargy/devtime/issues
11
- Project-URL: Release Notes, https://github.com/Shakargy/devtime/releases/tag/v0.3.0
11
+ Project-URL: Release Notes, https://github.com/Shakargy/devtime/releases/tag/v0.4.0
12
12
  Project-URL: Demo, https://youtu.be/1Hiu3Y9J_SI
13
13
  Keywords: devtools,cli,static-analysis,repository-analysis,engineering-intelligence,local-first
14
14
  Classifier: Development Status :: 3 - Alpha
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "devtime-ei"
3
- version = "0.3.0"
3
+ version = "0.4.0"
4
4
  description = "Local-first Engineering Intelligence for software repositories"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -50,7 +50,7 @@ dev = [
50
50
  Homepage = "https://github.com/Shakargy/devtime"
51
51
  Repository = "https://github.com/Shakargy/devtime"
52
52
  Issues = "https://github.com/Shakargy/devtime/issues"
53
- "Release Notes" = "https://github.com/Shakargy/devtime/releases/tag/v0.3.0"
53
+ "Release Notes" = "https://github.com/Shakargy/devtime/releases/tag/v0.4.0"
54
54
  Demo = "https://youtu.be/1Hiu3Y9J_SI"
55
55
 
56
56
  [project.scripts]
@@ -1,6 +1,6 @@
1
1
  """DevTime - local-first Engineering Intelligence for repository memory."""
2
2
 
3
- __version__ = "0.3.0"
3
+ __version__ = "0.4.0"
4
4
 
5
5
  # Version metadata (Builder Edition, Chapter 20).
6
6
  EVIDENCE_MODEL = "2026.06.1"
@@ -347,11 +347,29 @@ def risk(
347
347
  conn = connection.connect()
348
348
  try:
349
349
  intelligence = repository.load_all_concepts(conn)
350
+ from devtime.intelligence.verification import claims_affected_by_paths
351
+
352
+ claim_impact = claims_affected_by_paths(conn, info.changed_files)
350
353
  finally:
351
354
  conn.close()
352
355
 
353
356
  review = review_diff(info, intelligence)
354
357
  console.print(render_risk_review(review), markup=False)
358
+
359
+ # v0.4.0: claim impact. A diff is not just risky in general - it can
360
+ # destabilize a previously verified claim. Only evidence files count;
361
+ # nothing is printed when no verified claim is affected.
362
+ if claim_impact:
363
+ console.print("\nClaim impact:", markup=False)
364
+ for item in claim_impact:
365
+ console.print(
366
+ f" - {item['claim_id']} (previous status: {item['previous_status']})",
367
+ markup=False,
368
+ )
369
+ for p in item["changed_evidence"]:
370
+ console.print(f" changed evidence: {p}", markup=False)
371
+ console.print(f" re-verify: {item['suggested_action']}", markup=False)
372
+
355
373
  if review.state == STATE_REVIEW_FAILED:
356
374
  raise typer.Exit(code=1)
357
375
 
@@ -580,6 +580,38 @@ def load_latest_verification(
580
580
  )
581
581
 
582
582
 
583
+ def claims_affected_by_paths(
584
+ conn: sqlite3.Connection, changed_paths: list[str]
585
+ ) -> list[dict]:
586
+ """Claim impact for a set of changed paths (v0.4.0, diff integration).
587
+
588
+ For every claim with a stored verification, report it when a changed path
589
+ is one of its recorded evidence files. Only evidence files count: a diff
590
+ touching unrelated files never flags a claim. Advisory output - the caller
591
+ decides what to do with it.
592
+ """
593
+ changed = set(changed_paths)
594
+ out: list[dict] = []
595
+ for slug in BUILTIN_CLAIMS:
596
+ latest = load_latest_verification(conn, slug)
597
+ if latest is None:
598
+ continue
599
+ result, fingerprints, created_at = latest
600
+ evidence_paths = {fp["path"] for fp in fingerprints}
601
+ hits = sorted(evidence_paths & changed)
602
+ if hits:
603
+ out.append(
604
+ {
605
+ "claim_id": slug,
606
+ "previous_status": result["status"],
607
+ "verified_at": created_at,
608
+ "changed_evidence": hits,
609
+ "suggested_action": f"dtc verify {slug}",
610
+ }
611
+ )
612
+ return out
613
+
614
+
583
615
  def freshness_for(conn: sqlite3.Connection, slug: str) -> tuple[str, list[str]]:
584
616
  """Compare stored evidence fingerprints against current file hashes.
585
617
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devtime-ei
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: Local-first Engineering Intelligence for software repositories
5
5
  Author-email: Aviad Shakargi <aviad94@gmail.com>
6
6
  Maintainer-email: Aviad Shakargi <aviad94@gmail.com>
@@ -8,7 +8,7 @@ License: Apache-2.0
8
8
  Project-URL: Homepage, https://github.com/Shakargy/devtime
9
9
  Project-URL: Repository, https://github.com/Shakargy/devtime
10
10
  Project-URL: Issues, https://github.com/Shakargy/devtime/issues
11
- Project-URL: Release Notes, https://github.com/Shakargy/devtime/releases/tag/v0.3.0
11
+ Project-URL: Release Notes, https://github.com/Shakargy/devtime/releases/tag/v0.4.0
12
12
  Project-URL: Demo, https://youtu.be/1Hiu3Y9J_SI
13
13
  Keywords: devtools,cli,static-analysis,repository-analysis,engineering-intelligence,local-first
14
14
  Classifier: Development Status :: 3 - Alpha
File without changes
File without changes
File without changes