Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Changelog

## 0.11.0 — 2026-10-26

Settings in a window.

- Start menu *ADO Lens - settings* (or `adolens setup --window`) opens a window instead of a menu in a terminal:
- General: who uses it (mode), tools at start, language, download folder;
- Connections: the list with their PATs, add one (address or link, PAT, default project - checked before anything
is saved), remove, make default, project, team, project with the code, required label languages;
- Environments: per connection, the map in flow order as a table (repository, branch or release stage, name),
"Find stages and branches", reorder, save for you or for the whole team (wiki page "ADO Lens");
- Status: the same check as `adolens status`;
- "Open in a terminal" starts the menu of `adolens setup`, which stays as it was.
- The program is now built for Windows with Windows Forms (net9.0-windows); the program file is larger.

## 0.10.1 — 2026-10-26

- A Polish installation shows Polish texts people read: the descriptions of the skills in Claude Code and in the ZIPs
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ called (for you or the whole team); it installs the skills and registers ADO Len
English) is chosen at the start and kept for the settings; an update skips the questions. Until the program is signed, Windows SmartScreen may show "Windows protected your PC" for a file downloaded
in a browser: *More info → Run anyway* (or use the one-line install above, which avoids it).

After installing, the Start menu has an **ADO Lens** folder: *settings* (a menu: mode, environments — change, add,
remove, for you or the team —, add or remove a connection, status, language), *status* (is everything working) and the skills for Claude Desktop; `adolens` works in
After installing, the Start menu has an **ADO Lens** folder: *settings* (a window with tabs: mode, tools at start,
language, download folder; connections — add, remove, default, project, team, project with the code, label languages;
environments — find, edit, order, save for you or the team; status — and a button to the same menu in a terminal,
`adolens setup`), *status* (is everything working) and the skills for Claude Desktop; `adolens` works in
any new terminal. Uninstall from *Settings → Apps → ADO Lens* (or the Start menu): it removes the program, its Claude
registrations and skills, and asks whether to remove the stored PATs and settings too (by default they stay).

Expand Down
6 changes: 4 additions & 2 deletions README.pl.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,10 @@ starcie i zostaje też dla ustawień; aktualizacja pomija pytania. Dopóki
program nie jest podpisany, Windows SmartScreen może przy pliku pobranym przeglądarką pokazać „System Windows ochronił
ten komputer”: *Więcej informacji → Uruchom mimo to* (albo użyj instalacji jedną linijką powyżej, która tego unika).

Po instalacji w menu Start jest folder **ADO Lens**: *ustawienia* (menu: tryb, środowiska — zmiana, dodanie, usunięcie,
dla ciebie lub zespołu —, dodanie lub usunięcie połączenia, status, język), *status* (czy wszystko działa) i skille dla Claude Desktop; `adolens` działa w każdym nowym terminalu.
Po instalacji w menu Start jest folder **ADO Lens**: *ustawienia* (okno z zakładkami: tryb, narzędzia na start,
język, folder pobierania; połączenia — dodanie, usunięcie, domyślne, projekt, zespół, projekt z kodem, języki etykiet;
środowiska — wykrycie, edycja, kolejność, zapis dla ciebie lub zespołu; status — oraz przycisk do tego samego menu w
terminalu, `adolens setup`), *status* (czy wszystko działa) i skille dla Claude Desktop; `adolens` działa w każdym nowym terminalu.
Odinstalowanie: *Ustawienia → Aplikacje → ADO Lens* (albo z menu Start) — usuwa program, jego rejestracje w Claudzie
i skille, i pyta, czy usunąć też zapisane PAT-y i ustawienia (domyślnie zostają).

Expand Down
4 changes: 3 additions & 1 deletion packaging/inno/ado-lens.iss
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,9 @@ Source: "{#DesktopSkills}\*.zip"; DestDir: "{app}\skills-for-claude-desktop"; Fl

[Icons]
; Start menu: settings and status open in a console that stays open (adolens commands work there too).
Name: "{group}\{cm:IconSettings}"; Filename: "{cmd}"; Parameters: "/k """"{app}\bin\adolens.exe"" setup"""; WorkingDir: "{app}"; IconFilename: "{app}\bin\adolens.exe"
; The settings window; its button "Open in a terminal" starts the menu of 'adolens setup'. Minimized: the console the
; program starts with is closed at once, so it does not flash.
Name: "{group}\{cm:IconSettings}"; Filename: "{app}\bin\adolens.exe"; Parameters: "setup --window"; WorkingDir: "{app}"; Flags: runminimized
Name: "{group}\{cm:IconStatus}"; Filename: "{cmd}"; Parameters: "/k """"{app}\bin\adolens.exe"" status"""; WorkingDir: "{app}"; IconFilename: "{app}\bin\adolens.exe"
Name: "{group}\{cm:IconSkills}"; Filename: "{app}\skills-for-claude-desktop"
Name: "{group}\{cm:UninstallProgram,ADO Lens}"; Filename: "{uninstallexe}"; IconFilename: "{app}\bin\adolens.exe"
Expand Down
6 changes: 4 additions & 2 deletions src/AdoLens/AdoLens.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net9.0-windows</TargetFramework>
<!-- The settings window (adolens setup with the window flag); the program stays a console program for the CLI and MCP. -->
<UseWindowsForms>true</UseWindowsForms>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<AssemblyName>adolens</AssemblyName>
Expand All @@ -23,7 +25,7 @@
<AssemblyTitle>ADO Lens for Azure DevOps</AssemblyTitle>
<Description>Azure DevOps (work items, boards, wiki, Git and TFVC, pipelines) served to AI assistants over MCP</Description>
<Copyright>Copyright © 2026 WillowDev</Copyright>
<Version>0.10.1</Version>
<Version>0.11.0</Version>
</PropertyGroup>

<ItemGroup>
Expand Down
3 changes: 2 additions & 1 deletion src/AdoLens/Cli.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ recipe list | show <name> | save <name> --file <r.json> | delete <name
stats MCP calls of the last days: answer sizes, times, empty answers --days 7 --top 10
--live: show every call as Claude makes it (tool, tokens, ms), until Ctrl+C
setup settings menu: mode, environments (change or add, for you or the team wiki), add or remove a
connection, status; --wizard: the first-run questions in a row (used by the installer)
connection, status; --wizard: the first-run questions in a row (used by the installer);
--window: the same in a window (Start menu "ADO Lens - settings")
upgrade is there a newer ADO Lens --install (download, check SHA-256, run its installer) --pre
version print the version

Expand Down
2 changes: 1 addition & 1 deletion src/AdoLens/CommandLine.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public sealed partial class CommandLine
{
["mcp"] = [],
["upgrade"] = ["install", "pre"],
["setup"] = ["mode=", "connection=", "detect", "out=", "env=", "scope=", "wizard"],
["setup"] = ["mode=", "connection=", "detect", "out=", "env=", "scope=", "wizard", "window"],
["login"] = ["connection=", "org=", "project=", "team=", "pat-stdin", "pat-env=", "default"],
["tests"] = ["connection=", "team=", "detail="],
["test-create"] = ["connection=", "file=", "plan=", "suite="],
Expand Down
2 changes: 2 additions & 0 deletions src/AdoLens/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@
return await cli.MyDayAsync();
case "upgrade":
return await cli.UpdateCommandAsync();
case "setup" when cl.Flag("window"):
return SettingsWindow.Run(Settings.DefaultPath, version);
case "setup":
return await cli.SetupAsync();
case "trace":
Expand Down
Loading