You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Broaden OutputValidator hallucination check to cover more file extensions (closes#8) (#153)
The backticked-path regex only matched a fixed extension allowlist, so
hallucinated references in languages and config formats outside that list
(.tf, .tfvars, .hcl, .kts, .ini, .env, lockfiles, and more) were never
considered and shipped through untouched.
Replace the fixed-alternation regex with one that captures any path-shaped
token plus its extension, then judge candidates against KNOWN_EXTENSIONS
unioned with extensions derived from the scanned project's own source files.
Add poetry.lock to the well-known basenames and drop the dead bare .env entry
so directory-qualified config/.env is flagged. Silent stripping behavior is
unchanged.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
### Changed
10
10
-**Provider-agnostic TUI symbols**: Renamed `AppState.ollamaStatus` to `llmProviderStatus`; renamed matching helpers in `WelcomeView` (`ollamaReady/Dot/Label/Detail` -> `llmProviderReady/Dot/Label/Detail`), `Footer` (`ollamaState` -> `llmProviderState`), and `SettingsView`. The system-check card now derives the service row label from the resolved provider's `displayName()` instead of hardcoding "Ollama". Error hints in `buildLlmErrorMessage` are driven by the resolved provider name (falling back to "the local model server") rather than hardcoding "Ollama". The `/settings` command palette description now reads "Configure LLM provider and remote standards repo" (closes #27).
11
11
12
+
### Fixed
13
+
-**Hallucinated-path detection coverage**: The generated-context cleaner now recognizes file references in languages and config formats its fixed extension allowlist previously skipped (Terraform `.tf`/`.tfvars`/`.hcl`, Kotlin script `.kts`, `.ini`, `.env`, lockfiles, and more), so invented paths like `infra/variables.tf` or `config/app.ini` are stripped instead of shipping. Recognized extensions are now unioned with those used by the scanned project's own source files, so an unusual real extension is honored without hardcoding. Directory-qualified `config/.env` references are now flagged (bare `.env` remains a convention reference) (closes #8).
14
+
12
15
### Added
13
16
-**Project readiness view model**: `ReadinessViewMapper` turns a `ReadinessResult` plus project identity (name, path, type label) into a presentation-ready `ProjectReadinessView` - badge status, reason lines, the single recommended action, and the valid action menu. The mapper is the single place that decides which actions each status permits (deriving both the recommended action and the menu from status, never copying the evaluator's pre-set action), so the dashboard, CLI `--json`, and MCP render identical badges and actions; `PREPARE` is never offered for `UNSUPPORTED` or `IGNORED` (closes #136).
14
17
-**Workspace configuration store**: A `WorkspaceConfigService` backed by `~/.launchpad/config.yml` is now the single source of truth for which directories Launchpad scans. It persists workspace `roots` (replace the built-in defaults when set), `additionalRoots` (appended to defaults only when `roots` is unset), an `ignored` list, scan `depth` (clamped 1-5, default 3), and a `detectGitOnly` gate (default true). `~` and `~/<subpath>` expand to absolute paths on read; an absent file means "use defaults" and a parse failure warns and falls back to defaults instead of erroring. TUI project discovery and live search now read roots/depth/ignored from the store and only surface build-roots that are also git repositories when `detectGitOnly` is on (closes #125).
0 commit comments