Build ErsatzTV Image / Delimiter ban (release path) (push) Successful in 26s
Build ErsatzTV Image / Build & test (.NET) (push) Successful in 9m34s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (push) Successful in 6m35s
Build ErsatzTV Image / Functional E2E (curl + UI contracts) (push) Successful in 6m22s
Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (push) Skipped
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (push) Skipped
Build ErsatzTV Image / Build & push image (amd64) (push) Successful in 5m12s
Both C#/TS language servers and the csharp-lsp MCP server were dead; all three are fixed and each demonstrated with a real find-all-references call in this repo. Root causes were one shape — a config naming a path this machine does not have, with nothing checking. None returned a wrong answer; each refused to start: - csharp-ls: MSBuildLocator needs a dotnet root owning host/fxr; Homebrew's bin has none, libexec does. - typescript-language-server: the LSP workspace root is the repo root but `typescript` lives in web/node_modules, and the plugin cannot pass a tsserver path (v5 dropped --tsserver-path; lspServers cannot set initializationOptions). - the csharp-lsp MCP server: .mcp.json named a dotnet install that no longer existed, while ~/.codex/config.toml's copy of the same server had been migrated. Both files are gitignored, so nothing could compare them. Corrects defect-shapes-773.md §5.1: the "workflow agents must use csharp-lsp" note names the MCP server's tools, which subagents DO reach — it was dead because the server could not start, not because agents cannot call it. The LSP tool is the one no subagent has been observed to resolve. Six cold review rounds. Five false greens were found in this PR's own verification code, each introduced by the fix for the previous one — extracted as #796. fixes #777 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: Timothy <timothy@noreply.gitea.tblindustries.be>
98 lines
2.8 KiB
Plaintext
98 lines
2.8 KiB
Plaintext
*.swp
|
|
*.*~
|
|
project.lock.json
|
|
.DS_Store
|
|
# Code-coverage output (dotnet test --results-directory ./coverage, ersatztv#15)
|
|
/coverage/
|
|
*.pyc
|
|
.worktrees/
|
|
|
|
# Claude Code
|
|
.mcp/
|
|
.mcp.json
|
|
# Machine-local settings (DOTNET_ROOT and friends — see docs/local-lsp-tooling.md).
|
|
# Ignored here rather than relying on a personal ~/.config/git/ignore, so a second
|
|
# contributor following that doc cannot accidentally commit their own Homebrew paths.
|
|
/.claude/settings.local.json
|
|
.agents/
|
|
plugins/
|
|
nupkg/
|
|
|
|
# Visual Studio Code
|
|
.vscode
|
|
|
|
# Rider
|
|
.idea
|
|
|
|
# User-specific files
|
|
*.suo
|
|
*.user
|
|
*.userosscache
|
|
*.sln.docstates
|
|
|
|
# Build results
|
|
[Dd]ebug/
|
|
[Dd]ebugPublic/
|
|
[Rr]elease/
|
|
[Rr]eleases/
|
|
x64/
|
|
x86/
|
|
build/
|
|
bld/
|
|
[Bb]in/
|
|
[Oo]bj/
|
|
[Oo]ut/
|
|
msbuild.log
|
|
msbuild.err
|
|
msbuild.wrn
|
|
|
|
# Visual Studio 2015
|
|
.vs/
|
|
|
|
*.sqlite3*
|
|
# Core dumps. MUST stay anchored/qualified (ersatztv#485): a bare `core` matches any path
|
|
# component named `core`, and on a case-insensitive filesystem (macOS default) that includes
|
|
# every `*/Core/` source directory — silently excluding NEW files under e.g.
|
|
# ErsatzTV.Scanner/Core/ from `git add -A`. Tracked files are unaffected, so the symptom is a
|
|
# clean local build and a CI checkout that fails to compile.
|
|
#
|
|
# Both patterns are anchored to the repo root ON PURPOSE — an unanchored `core.[0-9]*` would
|
|
# re-introduce exactly the silent-exclusion class this fixes. Tradeoff, accepted: a dump written
|
|
# into a SUBdirectory is no longer ignored (the old bare `core` did catch those). In practice the
|
|
# processes that could drop one, run from the repo root or from `bin/` — and `[Bb]in/` already covers
|
|
# the latter. An un-ignored dump is visible noise; a wrongly-ignored source file is not.
|
|
/core
|
|
/core.[0-9]*
|
|
|
|
scripts/generate-api-sdk/swagger.json
|
|
scripts/download-test-content.sh
|
|
|
|
docker-compose.override.yml
|
|
|
|
ErsatzTV/wwwroot/v2/
|
|
ErsatzTV/wwwroot/app/
|
|
web/dist/
|
|
web/node_modules
|
|
|
|
# Root-level link that makes `typescript` resolvable from the repo root, which is
|
|
# the LSP workspace root — without it typescript-language-server refuses to start
|
|
# (ersatztv#777). See docs/local-lsp-tooling.md.
|
|
/node_modules/
|
|
|
|
# E2E / screenshot scratch (from Playwright/live-E2E runs) — never committed
|
|
/*.png
|
|
.playwright-mcp/
|
|
# UI-E2E run artifacts: traces/screenshots Playwright writes on failure (outputDir in
|
|
# web/playwright.config.ts), plus the report dir it would use if a reporter is ever added (#445).
|
|
web/e2e/.output/
|
|
web/playwright-report/
|
|
|
|
# Per-session worktree-ownership marker (H7, ersatztv#303) — local, never committed
|
|
.claude-worktree-owner
|
|
|
|
# Codex CLI project scaffolding — a machine-local mirror of the .claude hooks, generated by
|
|
# `codex exec`. Deliberately NOT tracked even though `.claude/` is: its config.toml embeds a
|
|
# plaintext Gitea credential and absolute /Users paths, so it is neither portable nor safe to
|
|
# commit. See ersatztv#711 for the related merge-gate gap.
|
|
.codex/
|