Skip to content

chore: ignore .vscode/ editor scaffolding - #22

Open
VAsHachiRoku wants to merge 1 commit into
mainfrom
chore/ignore-vscode
Open

VAsHachiRoku wants to merge 1 commit into
mainfrom
chore/ignore-vscode

Conversation

@VAsHachiRoku

Copy link
Copy Markdown
Collaborator

Summary

Launching this repository from Developer Control Tower left .vscode/ showing as an
untracked directory, so the working tree was never clean after a launch.

Two different files were involved, with different origins:

  • .vscode/tasks.json is written by Developer Control Tower itself when it starts a
    Copilot CLI session for this folder. The tool already keeps this out of version
    control by appending /.vscode/tasks.json to .git/info/exclude, which is
    deliberate so it never edits a tracked .gitignore in someone else's repository.
  • .vscode/launch.json is scaffolded by the VS Code C# extension and was not covered
    by anything. It was the only genuinely untracked file; git status --short collapses
    the directory to ?? .vscode/, which made both look untracked.

Neither file is shared configuration. launch.json is a console-debug configuration
pointed at ControlTower.Tests rather than the WPF desktop app, and the generated task
carries per-user session flags. This adds .vscode/ to .gitignore alongside the
existing .vs/ and .idea/ entries, so editor and tool scaffolding is treated the same
way regardless of which editor produced it.

Behavior and risk

User-visible behavior

  • No runtime, UI, or packaging change. This is a single line in .gitignore.
  • The working tree stays clean after launching this repository from the app.

Scope

  • Nothing was tracked under .vscode/ before this change (git ls-files .vscode is
    empty), so no file is being un-tracked and no contributor loses a committed config.
  • The tool's .git/info/exclude mechanism is left untouched. It remains the correct
    behavior for repositories the tool does not own; this change only covers the
    editor-generated remainder in this repository.
  • A future shared config under .vscode/ can still be added deliberately with
    git add -f.

Security impact

  • None directly, though it removes a standing chance of committing the generated task,
    which records personal launch flags such as the agent name and session options.
  • No secrets, machine paths, or portfolio state are added. .gitignore already ignores
    user and machine state for this tool.

Rollback

  • Delete the line. Any .vscode/ files on disk are untouched either way.

Validation

  • Targeted tests added or updated
  • dotnet test DeveloperControlTower.sln -c Release
  • No secrets, private assets, portfolio data, or machine paths added
  • GitHub Actions, if changed, use full immutable SHAs

No tests were added and the suite was not run locally: this change touches no compiled
code, only .gitignore. CI runs the full build and test suite on this pull request as a
required status check, which covers the no-regression case.

Validation performed was on the ignore behavior itself:

Command Result
git check-ignore -v .vscode/launch.json .gitignore:4:.vscode/ — now ignored
git check-ignore -v .vscode/tasks.json .gitignore:4:.vscode/ — now ignored
git status --porcelain --untracked-files=all Empty — working tree fully clean
git ls-files .vscode Empty — nothing previously tracked, nothing un-tracked

No workflow files were changed.

VS Code's C# extension scaffolds .vscode/launch.json, and Developer Control Tower writes .vscode/tasks.json when it launches this repo. Neither is shared configuration: launch.json targets the test project rather than the desktop app, and the generated task carries per-user session flags.

The app already keeps its own file out of git via .git/info/exclude, so this only covers the editor-generated remainder. Matches the existing .vs/ and .idea/ entries.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: fefa59c9-4c4d-459a-9100-8b86025dabd8

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant