truecourse 0.2.0 → 0.2.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/README.md CHANGED
@@ -113,6 +113,7 @@ Once the server is running, `cd` into any repo and:
113
113
  npx truecourse add # Register repo without analyzing
114
114
  npx truecourse analyze # Analyze current repo, show violations
115
115
  npx truecourse analyze --code-review # Analyze with LLM code review (off by default)
116
+ npx truecourse analyze --no-llm # Deterministic checks only, skip all LLM calls
116
117
  npx truecourse analyze --diff # Show new/resolved violations from uncommitted changes
117
118
  npx truecourse list # Show violations from latest analysis
118
119
  npx truecourse list --diff # Show saved diff check results
package/cli.mjs CHANGED
@@ -13416,7 +13416,7 @@ async function runAdd() {
13416
13416
  init_dist2();
13417
13417
  init_helpers();
13418
13418
  var TIMEOUT_MS = 15 * 60 * 1e3;
13419
- async function runAnalyze({ noAutostart = false, codeReview = false } = {}) {
13419
+ async function runAnalyze({ noAutostart = false, codeReview = false, deterministicOnly = false } = {}) {
13420
13420
  we("Analyzing repository");
13421
13421
  if (noAutostart) {
13422
13422
  const url2 = getServerUrl();
@@ -13480,7 +13480,7 @@ async function runAnalyze({ noAutostart = false, codeReview = false } = {}) {
13480
13480
  fetch(`${serverUrl}/api/repos/${repo.id}/analyze`, {
13481
13481
  method: "POST",
13482
13482
  headers: { "Content-Type": "application/json" },
13483
- body: JSON.stringify({ codeReview })
13483
+ body: JSON.stringify({ codeReview, deterministicOnly })
13484
13484
  }).then((res2) => {
13485
13485
  if (!res2.ok) {
13486
13486
  clearTimeout(timeout);
@@ -13508,7 +13508,9 @@ async function runAnalyze({ noAutostart = false, codeReview = false } = {}) {
13508
13508
  }
13509
13509
  const violations = await res.json();
13510
13510
  renderViolationsSummary(violations);
13511
- v2.info("Code review running in background \u2014 results will appear in the dashboard");
13511
+ if (!deterministicOnly) {
13512
+ v2.info("Code review running in background \u2014 results will appear in the dashboard");
13513
+ }
13512
13514
  const repoUrl = `${serverUrl}/repos/${repo.id}`;
13513
13515
  if (firstRun) {
13514
13516
  openInBrowser(repoUrl);
@@ -13786,7 +13788,7 @@ function registerServiceCommand(program3) {
13786
13788
  init_helpers();
13787
13789
  init_platform();
13788
13790
  var program2 = new Command();
13789
- program2.name("truecourse").version("0.1.0").description("TrueCourse CLI - Setup and manage your TrueCourse instance");
13791
+ program2.name("truecourse").version("0.2.1").description("TrueCourse CLI - Setup and manage your TrueCourse instance");
13790
13792
  program2.command("setup").description("Run the setup wizard to configure TrueCourse").action(async () => {
13791
13793
  await runSetup();
13792
13794
  });
@@ -13796,11 +13798,11 @@ program2.command("start").description("Start TrueCourse services").action(async
13796
13798
  program2.command("add").description("Add the current directory as a repository").action(async () => {
13797
13799
  await runAdd();
13798
13800
  });
13799
- program2.command("analyze").description("Analyze the current repository").option("--diff", "Run diff check against latest analysis").option("--code-review", "Include LLM code review (off by default)").option("--no-autostart", "Don't auto-start the server (for use from Claude Code skills)").action(async (options) => {
13801
+ program2.command("analyze").description("Analyze the current repository").option("--diff", "Run diff check against latest analysis").option("--code-review", "Include LLM code review (off by default)").option("--no-llm", "Skip all LLM calls, run only deterministic checks").option("--no-autostart", "Don't auto-start the server (for use from Claude Code skills)").action(async (options) => {
13800
13802
  if (options.diff) {
13801
13803
  await runAnalyzeDiff({ noAutostart: !options.autostart });
13802
13804
  } else {
13803
- await runAnalyze({ noAutostart: !options.autostart, codeReview: options.codeReview ?? false });
13805
+ await runAnalyze({ noAutostart: !options.autostart, codeReview: options.codeReview ?? false, deterministicOnly: !options.llm });
13804
13806
  }
13805
13807
  });
13806
13808
  program2.command("code-review").description("Run LLM code review on the latest analysis").option("--diff", "Run on the latest diff analysis instead").option("--no-autostart", "Don't auto-start the server").action(async (options) => {
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "analyses" ADD COLUMN "status" text DEFAULT 'completed' NOT NULL;
2
+ -- Existing rows are completed analyses; new rows created at analysis start will explicitly set 'running'