• v0.13.0 9cc1dd7146

    v0.13.0
    Some checks failed
    Check / fmt + clippy + build + tests (push) Successful in 39s
    Build Windows binary / Build yt (Windows x86_64) (push) Successful in 2m29s
    Build Linux binary / Build yt (Linux x86_64) (push) Successful in 7m15s
    Build macOS binary / Build yt (macOS aarch64) (push) Has been cancelled
    Stable

    David released this 2026-08-02 01:27:27 +02:00 | 23 commits to main since this release

    Changelog

    9cc1dd7 Merge pull request 'Release v0.13.0' (#139) from release/v0.13.0 into main
    e82d74e Merge branch 'main' into release/v0.13.0
    2be3c9a Merge pull request 'fix(version): make the update write probe collision-free' (#140) from fix/YT-85-probe-filename-collision into main
    fe64092 fix(version): make the update write probe collision-free
    5e7f8e9 Release v0.13.0
    1656b3a Merge pull request 'feat(mcp): expose server version and project team tools' (#138) from feat/YT-84-mcp-server-team-tools into main
    7ae3a62 feat(mcp): expose server version and project team tools
    d289102 Merge pull request 'feat(server): add yt server version for the server version' (#137) from feat/YT-82-server-version into main
    042b105 feat(server): add yt server version for the server version
    576191a Merge pull request 'feat(project): add a team group for project access and roles' (#136) from feat/YT-83-project-team into main
    d3b109a feat(project): add a team group for project access and roles
    82174a6 Merge pull request 'feat(mcp): add a per-call dry run to every mutating tool' (#135) from feat/YT-81-mcp-dry-run into main
    764a956 feat(mcp): add a per-call dry run to every mutating tool
    d18b069 Merge pull request 'feat(issue): add a clear verb for single-value custom fields' (#134) from feat/YT-80-clear-custom-field into main
    62b44fe feat(issue): add a clear verb for single-value custom fields
    0ee427d Merge pull request 'fix(just): list recipes when run with no arguments' (#133) from fix/YT-79-default-recipe-lists-recipes into main
    c0ced6d fix(just): list recipes when run with no arguments
    4faf68c Merge pull request 'feat(macos): support Apple Silicon builds and self-update' (#132) from fix/macos-native-build into main
    d0cf8cf fix(ci): install a C toolchain before running cargo in check.yml
    084d004 fix(ci): verify the C toolchain before building on macOS
    f41188a feat(macos): support Apple Silicon builds and self-update
    4d431d3 Merge pull request 'fix(mcp): resolve link target to its internal id on removal' (#131) from fix/YT-78-remove-issue-link-internal-id into main
    cb285d1 fix(mcp): resolve link target to its internal id on removal
    3ad9873 Merge pull request 'fix(vcs): update processors via the vcsIntegrationSettings endpoint (YT-77)' (#130) from fix/YT-77-vcs-processor-mutation-endpoint into main
    30face1 fix(vcs): update processors via the vcsIntegrationSettings endpoint (YT-77)

    Downloads
  • v0.12.0 d2d73de59d

    v0.12.0
    All checks were successful
    Check / fmt + clippy + build + tests (push) Successful in 56s
    Build Linux binary / Build yt (Linux x86_64) (push) Successful in 6m20s
    Build Windows binary / Build yt (Windows x86_64) (push) Successful in 6m50s
    Stable

    David released this 2026-07-18 15:41:59 +02:00 | 48 commits to main since this release

    Changelog

    d2d73de Merge pull request 'Release v0.12.0' (#129) from release/v0.12.0 into main
    4ac37f7 Release v0.12.0
    bf2a0ab Merge pull request 'fix(oci): copy .cargo/config.toml so the image build resolves the mcp-web registry' (#128) from fix/MCPWEB-1-oci-cargo-config into main
    0f1f121 fix(oci): copy .cargo/config.toml so the mcp-web registry resolves in the image build
    14ae33b Merge pull request 'feat(mcp): adopt the shared mcp-web crate for the generic web layer' (#127) from feat/YT-73-adopt-mcp-web into main
    47de5f5 feat(mcp): adopt the shared mcp-web crate for the generic web layer
    a4bf41d Merge pull request 'docs(mcp): state which adversary at-rest encryption stops' (#126) from docs/YT-66-at-rest-adversary-statement into main
    87b139b docs(mcp): state which adversary at-rest encryption stops
    d12e55e Merge pull request 'feat(mcp): admin account-lifecycle UI, instances unreadable' (#125) from feat/YT-71-admin-account-lifecycle into main
    c09e026 feat(mcp): admin account-lifecycle UI, instances unreadable
    1823487 Merge pull request 'feat(mcp): ship yt mcp serve as Docker only, drop systemd' (#124) from feat/YT-72-mcp-docker-only-deprecate-systemd into main
    e4687b3 feat(mcp): ship yt mcp serve as Docker only, drop systemd
    ae7e449 Merge pull request 'feat(mcp): add account settings web UI for YT instance' (#123) from feat/YT-70-account-web-ui into main
    0df241e feat(mcp): add account settings web UI for YT instance
    b72027c Merge pull request 'feat(mcp): cut over from Hub OAuth to local accounts' (#122) from feat/YT-69-local-accounts-cutover into main
    21664ae feat(mcp): cut over from Hub OAuth to local accounts
    9164c66 Merge pull request 'feat(mcp): add local accounts to yt mcp serve' (#121) from feat/YT-67-local-accounts into main
    96d0f09 feat(mcp): add local accounts to yt mcp serve
    61fbbf4 Merge pull request 'chore(cli): remove clap's auto-generated help subcommand' (#120) from chore/YT-63-remove-help-subcommand into main
    8e57bbb chore(cli): remove clap's auto-generated help subcommand
    734bdd5 Merge pull request 'fix(mcp): keep the new secret out of argv on secret rotate' (#119) from fix/YT-62-secret-rotate-no-argv-secret into main
    fc3a671 fix(mcp): keep the new secret out of argv on secret rotate
    4fa0be9 Merge pull request 'fix(mcp): stop administering Hub from secret rotate' (#118) from fix/YT-61-drop-hub-secret-administration into main
    5ed3830 fix(mcp): stop administering Hub from secret rotate
    6b6ee85 Merge pull request 'fix(mcp): preflight Hub access before the rotation prompt' (#117) from fix/YT-60-hub-scope-preflight into main
    e73d918 fix(mcp): preflight Hub access before the rotation prompt
    94ed657 Merge pull request 'fix(version): make check train-aware' (#116) from fix/YT-57-train-aware-version-check into main
    d7b7ef3 fix(version): make check train-aware

    Downloads
  • v0.11.0 f1f3135a63

    v0.11.0
    All checks were successful
    Check / fmt + clippy + build + tests (push) Successful in 58s
    Build Windows binary / Build yt (Windows x86_64) (push) Successful in 1m26s
    Build Linux binary / Build yt (Linux x86_64) (push) Successful in 6m38s
    Stable

    David released this 2026-07-17 03:02:02 +02:00 | 76 commits to main since this release

    Changelog

    f1f3135 Merge pull request 'Release v0.11.0' (#115) from release/v0.11.0 into main
    b414c14 Release v0.11.0
    0896c3c Merge pull request 'feat(mcp): add yt mcp secret rotate' (#114) from feat/YT-56-mcp-secret-rotate into main
    e48e8ed feat(mcp): add yt mcp secret rotate
    6e66c79 Merge pull request 'fix(mcp): reject a Hub scope that cannot reach YouTrack' (#113) from fix/YT-55-hub-scope-validation into main
    4c61af4 fix(mcp): reject a Hub scope that cannot reach YouTrack
    9ecd65a Merge pull request 'feat(mcp): sweep expired codes and tokens on a timer' (#112) from feat/YT-54-sweep-expired-timer into main
    062fc2f feat(mcp): sweep expired codes and tokens on a timer
    15e6bcb Merge pull request 'docs(mcp): stop calling a secret rotation a refresh-token wipe' (#111) from feat/YT-52-hub-reauth-command into main
    706ca7d docs(mcp): stop calling a secret rotation a refresh-token wipe
    384c924 feat(mcp): re-mint Hub tokens after a client-secret rotation
    1bf2d16 Merge pull request 'feat(mcp): give an invalidated Hub token a recovery path' (#110) from feat/YT-51-hub-token-recovery-path into main
    8a2a358 feat(mcp): give an invalidated Hub token a recovery path
    f57a0cc Merge pull request 'fix(mcp): refresh a Hub token YouTrack rejects instead of trusting expires_at' (#109) from fix/YT-50-refresh-hub-token-on-401 into main
    355a3fa fix(mcp): refresh a Hub token YouTrack rejects instead of trusting expires_at

    Downloads
  • v0.10.0 e1de9e6fcf

    v0.10.0
    All checks were successful
    Check / fmt + clippy + build + tests (push) Successful in 22s
    Build Linux binary / Build yt (Linux x86_64) (push) Successful in 6m6s
    Build Windows binary / Build yt (Windows x86_64) (push) Successful in 6m54s
    Stable

    David released this 2026-07-06 00:07:01 +02:00 | 91 commits to main since this release

    Changelog

    e1de9e6 Merge pull request 'Release v0.10.0' (#108) from release/v0.10.0 into main
    2a595c2 Merge branch 'main' into release/v0.10.0
    deee121 Merge pull request 'fix(mcp): set SQLite busy_timeout so allowlist CLI works while the service runs' (#107) from fix/YT-49-sqlite-busy-timeout into main
    590746e Release v0.10.0
    61c717e fix(mcp): set SQLite busy_timeout so allowlist CLI works while the service runs
    3e7e301 Merge pull request 'fix(mcp): always emit a string scope in the /token response' (#106) from fix/YT-48-token-scope-null into main
    2728425 fix(mcp): always emit a string scope in the /token response
    2fd9a6c Merge pull request 'docs(deployment): rewrite the yt mcp serve setup guide end-to-end' (#105) from docs/YT-45-mcp-serve-setup-guide into main
    a13a2ae chore: Merge from main and resolve conflicts
    b6bdd6c Merge pull request 'feat(mcp): add yt mcp allowlist to manage the serve allowlist without SQL' (#104) from feat/YT-47-mcp-allowlist-cli into main
    94fb250 Merge branch 'main' into feat/YT-47-mcp-allowlist-cli
    8daa81b Merge pull request 'feat(mcp): instrument the MCP feature with structured tracing' (#102) from feat/YT-43-mcp-structured-tracing into main
    35a8af1 test(mcp): deflake the request-logging test with a global default subscriber
    efb7749 Merge branch 'main' into feat/YT-47-mcp-allowlist-cli
    03eea54 feat(mcp): add yt mcp allowlist to manage the serve allowlist without SQL
    54dd82f docs(deployment): rewrite the yt mcp serve setup guide end-to-end
    13bb297 Merge branch 'main' into feat/YT-43-mcp-structured-tracing
    66fb343 Merge pull request 'fix(mcp): allow the configured first admin to bootstrap an empty allowlist' (#103) from fix/YT-46-admin-bootstrap-allowlist into main
    9d332c3 docs(mcp): reconcile the complete_login flow comment with the bootstrap gate
    b930ade fix(mcp): allow the configured first admin to bootstrap an empty allowlist
    f8f73b4 feat(mcp): instrument the MCP feature with structured tracing
    47a6700 Merge pull request 'feat(mcp): expose --hub-scope and default Hub scope to include Hub identity' (#101) from feat/YT-44-hub-scope-install into main
    90dfa18 feat(mcp): expose --hub-scope and default Hub scope to include identity
    aec85be Merge pull request 'fix(mcp): create SQLite parent dir so first service start succeeds' (#100) from fix/YT-42-mcp-sqlite-parent-dir into main
    141bc38 fix(mcp): create SQLite parent dir so first service start succeeds
    f20f7fb Merge pull request 'fix(mcp): resolve MCP service config dir through $XDG_CONFIG_HOME' (#99) from fix/YT-41-mcp-installer-xdg-config-home into main
    bcf0dc8 fix(mcp): resolve MCP service config dir through $XDG_CONFIG_HOME

    Downloads
  • v0.9.0 acbfd60fb8

    v0.9.0
    All checks were successful
    Check / fmt + clippy + build + tests (push) Successful in 30s
    Build Linux binary / Build yt (Linux x86_64) (push) Successful in 5m26s
    Build Windows binary / Build yt (Windows x86_64) (push) Successful in 5m42s
    Stable

    David released this 2026-07-03 19:12:53 +02:00 | 118 commits to main since this release

    Changelog

    acbfd60 Merge pull request 'Release v0.9.0' (#98) from release/v0.9.0 into main
    4bee453 Release v0.9.0
    96afa91 Merge pull request 'feat(version): add release trains and --train to yt version update' (#97) from feat/YT-39-release-train-update into main
    ed7fd42 feat(version): add release trains and --train to yt version update
    2533b6c Merge pull request 'feat(issue): expose per-link direction and verb in inspect --json' (#96) from feat/YT-40-link-direction-json into main
    6cbd0f8 feat(issue): expose per-link direction and verb in inspect --json
    c541e8b Merge pull request 'fix/YT-38-version-update-wording' (#95) from fix/YT-38-version-update-wording into main
    ceceae6 Merge branch 'main' of https://dev.a8n.run/pandoras-box/youtrack-cli into fix/YT-38-version-update-wording
    ca733da Merge pull request 'feat(version): add update-check hint to yt version output' (#94) from feat/YT-36-version-update-hint into main
    9d938f2 Merge branch 'main' into feat/YT-36-version-update-hint
    bab399e fix(version): align update progress/result wording with fj
    809f485 Merge pull request 'fix(version): compare published registry versions, not Last-Modified' (#93) from fix/YT-37-version-check-compare-published-versions into main
    123b8b8 fix(version): compare published registry versions, not Last-Modified
    1adab6d feat(version): add update-check hint to yt version output

    Downloads
  • v0.8.0 7c04eb6a09

    v0.8.0
    All checks were successful
    Check / fmt + clippy + build + tests (push) Successful in 28s
    Build Linux binary / Build yt (Linux x86_64) (push) Successful in 4m59s
    Build Windows binary / Build yt (Windows x86_64) (push) Successful in 5m0s
    Stable

    David released this 2026-07-03 16:46:01 +02:00 | 132 commits to main since this release

    Changelog

    7c04eb6 Merge pull request 'Release v0.8.0' (#92) from release/v0.8.0 into main
    8f801d9 Release v0.8.0
    3343d1b Merge pull request 'chore: Sync the .idea directory' (#91) from chore/sync-idea-directory into main
    c68f2e5 chore: Sync the .idea directory
    5ea7b14 Merge pull request 'feat(mcp): add yt mcp service install/uninstall systemd user service' (#90) from feat/YT-35-mcp-service-install into main
    d596234 feat(mcp): add yt mcp service install/uninstall systemd user service
    1f27503 Merge pull request 'chore(mcp): rename YT_MCP_* env vars to YOUTRACK_MCP_' (#89) from chore/YT-34-rename-mcp-env-vars into main
    b42b8e5 chore(mcp): rename YT_MCP_
    env vars to YOUTRACK_MCP_*

    Downloads
  • v0.7.0 e5a9e15c89

    v0.7.0
    All checks were successful
    Check / fmt + clippy + build + tests (push) Successful in 52s
    Build Linux binary / Build yt (Linux x86_64) (push) Successful in 6m33s
    Build Windows binary / Build yt (Windows x86_64) (push) Successful in 7m18s
    Stable

    David released this 2026-07-02 18:44:27 +02:00 | 140 commits to main since this release

    Changelog

    e5a9e15 Merge pull request 'Release v0.7.0' (#88) from release/v0.7.0 into main
    d450b6e Release v0.7.0
    4146942 Merge pull request 'chore(common): bump submodule to d424d6a (GOV-39 no-compose CLI)' (#87) from chore/YTCLI-33-bump-common-submodule into main
    04f2368 chore(common): bump submodule to d424d6a (GOV-39 no-compose CLI)
    6dbe9ba Merge pull request 'feat(cli): color --help output mirroring forgejo-cli's scheme' (#86) from feat/YTCLI-32-color-help-output into main
    65fcac1 feat(cli): color --help output mirroring forgejo-cli's scheme
    85d2e53 Merge pull request 'feat(mcp): merge youtrack-mcp into the workspace as one yt binary (YTCLI-30)' (#85) from feat/YTCLI-30-merge-mcp-into-workspace into main
    2ca8e2a feat(mcp): merge youtrack-mcp into the workspace as one yt binary
    4538ca7 Merge pull request 'docs(CLAUDE): correct Repository layout for crates/ workspace' (#84) from docs/YTCLI-29-repo-layout-crates into main
    9404e6d docs(CLAUDE): correct Repository layout for crates/ workspace
    51a7576 Merge pull request 'chore(common): re-pin submodule to main after GOV-38 merge' (#83) from chore/YTCLI-28-repin-common-to-main into main
    5a05f30 chore(common): re-pin submodule to main after GOV-38 merge
    7df1bc0 Merge pull request 'chore(just): adopt shared common task-runner submodule; workspace release layout' (#82) from feat/YTCLI-28-adopt-common-submodule into main
    287bd2b chore(just): adopt shared common task-runner submodule; workspace release layout
    097bf34 Merge pull request 'fix: enforce no-silent-truncation on every collection read' (#81) from fix/pagination-invariant-sweep into main
    f0e615a Merge origin/main into pagination invariant sweep
    caf0e22 fix(client): enforce no-silent-truncation on every collection read
    2625a8b Merge pull request 'fix: paginate list_projects to defeat YouTrack's 42-row cap' (#80) from fix/list-projects-pagination into main
    19c94aa fix(client): paginate list_projects to defeat YouTrack's 42-row cap

    Downloads
  • v0.6.0 f9e44199ed

    v0.6.0
    All checks were successful
    Check / fmt + clippy + build + tests (push) Successful in 14s
    Build Windows binary / Build yt (Windows x86_64) (push) Successful in 1m31s
    Build Linux binary / Build yt (Linux x86_64) (push) Successful in 2m4s
    Stable

    David released this 2026-06-25 21:05:26 +02:00 | 159 commits to main since this release

    Changelog

    f9e4419 Merge pull request 'Release v0.6.0' (#79) from release/v0.6.0 into main
    f4654f2 Release v0.6.0
    da8fc6f Merge pull request 'fix: Include cargo.lock in the create-release process' (#78) from fix/cargo-lock-create-release into main
    0f674cd Merge branch 'main' into fix/cargo-lock-create-release
    7c2f60b fix: Include cargo.lock in the create-release process
    f3bc6f1 Merge pull request 'feat(client): add Gantt/timeline scheduling to youtrack-client' (#77) from feat/YTCLI-25-gantt-timeline-scheduling into main
    7bdd317 feat(client): add Gantt/timeline scheduling to youtrack-client

    Downloads
  • v0.5.0 80cc4fa7fb

    v0.5.0
    All checks were successful
    Check / fmt + clippy + build + tests (push) Successful in 33s
    Build Linux binary / Build yt (Linux x86_64) (push) Successful in 1m27s
    Build Windows binary / Build yt (Windows x86_64) (push) Successful in 1m40s
    Stable

    David released this 2026-06-22 18:18:50 +02:00 | 166 commits to main since this release

    Changelog

    80cc4fa Merge pull request 'Release v0.5.0' (#76) from release/v0.5.0 into main
    3ff4ce5 Release v0.5.0
    f04aba2 Merge pull request 'fix(ci): derive publish channel from trigger to end 409 race' (#74) from fix/GOV-14-trigger-derived-publish-channels into main
    78f1e72 Merge branch 'main' into fix/GOV-14-trigger-derived-publish-channels
    7deeaf7 Merge pull request 'chore: Sync the checks and justfile recipes' (#75) from chore/sync-checks-justfile into main
    9525f07 chore: Sync the checks and justfile recipes
    8a4af12 fix(ci): derive publish channel from trigger to end 409 race
    47989e4 Merge pull request 'feat(ci): cap native check.yml parallelism at nproc/2' (#73) from feat/GOV-10-native-check-nproc-cap into main
    7e5e7cf feat(ci): cap native check.yml parallelism at nproc/2
    d9b03fa Merge pull request 'fix(hooks): mount cargo target outside bind mount via CARGO_TARGET_DIR' (#72) from fix/dev-371-precommit-host-owned-target into main
    e57a07c fix(hooks): mount cargo target outside bind mount via CARGO_TARGET_DIR
    4a16163 Merge pull request 'feat(justfile): add dev-clean / dev-clean-all teardown recipes' (#71) from feat/dev-clean-recipes into main
    79381c1 feat(justfile): add dev-clean / dev-clean-all teardown recipes
    75d070e Merge pull request 'fix(attachment): download file bytes, not the YouTrack SPA' (#70) from fix/attachment-get-spa-html-YT-24 into main
    1841e8c fix(attachment): download file bytes, not the YouTrack SPA
    5fb304a Merge pull request 'YT-22: Add write path and full read for project VCS integrations' (#68) from feat/project-vcs-crud-YT-22 into main
    17ef90d Merge branch 'main' into feat/project-vcs-crud-YT-22
    88a95d5 Merge pull request 'chore: Sync .gitignore' (#69) from chore/sync-gitignore into main
    10f1123 chore: Sync .gitignore
    202a074 feat(project): add full read and CRUD for project VCS integrations
    9ead200 Merge pull request 'YT-21: docs(readme): link other YouTrack MCP implementations (YT-21)' (#67) from docs/readme-link-other-mcp-implementations-YT-21 into main
    2fab21f docs(readme): link other YouTrack MCP implementations
    233b7a0 Merge pull request 'fix(ci): copy all workspace member manifests in Docker builds' (#64) from fix/docker-workspace-member-manifests into main
    a0b9c3d Merge branch 'main' into fix/docker-workspace-member-manifests
    dbc0905 Merge pull request 'fix(release): YT-20 changelog lists only commits since previous tag' (#66) from fix/release-notes-changelog-range-YT-20 into main
    1211f2a fix(release): resolve previous tag from HEAD^ for changelog range
    2b04c24 fix(ci): copy all workspace member manifests in Docker builds

    Downloads
  • v0.4.0 4edbe18ee4

    v0.4.0
    Some checks failed
    Build Windows binary / Build yt (Windows x86_64) (push) Failing after 7s
    Build Linux binary / Build yt (Linux x86_64) (push) Failing after 7s
    Check / fmt + clippy + build + tests (push) Successful in 24s
    Stable

    David released this 2026-05-31 19:03:22 +02:00 | 193 commits to main since this release

    Changelog

    4edbe18 Merge pull request 'Release v0.4.0' (#63) from release/v0.4.0 into main
    c1be3e8 Release v0.4.0
    6bf5a1c Merge pull request 'refactor(workspace): relocate compact_text to CLI presentation module (YT-19)' (#62) from refactor/relocate-presentation-YT-19 into main
    92bf5a4 refactor(workspace): relocate compact_text to CLI presentation module (YT-19)
    6e3b3df Merge pull request 'refactor(workspace): extract crates/youtrack-config + client bridge (YT-18)' (#61) from refactor/extract-youtrack-config-YT-18 into main
    8c1be2d refactor(workspace): extract crates/youtrack-config + client bridge (YT-18)
    a7fbc09 Merge pull request 'refactor(workspace): extract crates/youtrack-client (YT-17)' (#60) from refactor/extract-youtrack-client-YT-17 into main
    2e9c16b chore(yt-cli): drop thiserror and urlencoding deps
    a03446d refactor(workspace): extract crates/youtrack-client (YT-17)
    123f208 Merge pull request 'refactor(workspace): convert to Cargo workspace, move binary to crates/yt-cli (YT-16)' (#59) from refactor/cargo-workspace-yt-cli-YT-16 into main
    fa29b94 refactor(workspace): move binary crate to crates/yt-cli
    ee2d3e4 Merge pull request 'fix(issue): decode links per-entry, add linked-issue resolution (YT-14)' (#58) from fix/issue-links-resolved-null-YT-14 into main
    5715e64 fix(issue): decode links per-entry, add linked-issue resolution (YT-14)
    f2a0d87 Merge pull request 'feat(issue): read description/comment from file or stdin (YT-13)' (#57) from feat/issue-file-input-YT-13 into main
    6cfe797 feat(issue): read description/comment from file or stdin (YT-13)
    55860b0 Merge pull request 'fix(issue): resolve link verb via /api/issueLinkTypes (YT-12)' (#56) from fix/issue-link-default-type-YT-12 into main
    4df5dac fix(issue): resolve link verb via /api/issueLinkTypes (YT-12)
    13263dc Merge pull request 'fix(issue): tolerate null fields in comment and link decode (YT-11)' (#55) from fix/issue-inspect-null-fields-YT-11 into main
    0f407f4 Merge branch 'main' into fix/issue-inspect-null-fields-YT-11
    a2b400e Merge pull request 'feat(version): group version commands under yt version (YT-10)' (#54) from feat/version-command-YT-10 into main
    1959372 fix(issue): tolerate null fields in comment and link decode (YT-11)
    c6a21cf feat(version): group version commands under yt version (YT-10)
    7bad726 Merge pull request 'feat(article): pull and push articles for IDE Markdown editing (YT-5)' (#53) from feat/article-pull-push-YT-5 into main
    d6f2a1d feat(article): add yt article pull/push for IDE Markdown editing (YT-5)
    4f8e02f Merge pull request 'feat(issue): add yt issue set-field (YT-9)' (#52) from feat/issue-set-field-YT-9 into main
    6b8bded Merge remote-tracking branch 'origin/main' into feat/issue-set-field-YT-9
    9561700 Merge pull request 'feat(issue): add yt issue get-field (YT-8)' (#51) from feat/issue-get-field-YT-8 into main
    45bbb22 Merge remote-tracking branch 'origin/main' into feat/issue-get-field-YT-8
    29fa27c Merge pull request 'feat(project): add yt project vcs (YT-7)' (#50) from feat/project-vcs-YT-7 into main
    62934b0 feat(issue): add yt issue set-field (YT-9)
    ef3cb45 feat(issue): add yt issue get-field (YT-8)
    3158a39 feat(project): add yt project vcs (YT-7)
    91a88d2 Merge pull request 'feat(justfile): fj-driven create-release + group attrs (DEV-331)' (#49) from feat/justfile-fj-pr-create-DEV-331 into main
    97d270b feat(justfile): fj-driven create-release + group attrs (DEV-331)
    96ed9ea Merge pull request 'feat(sprint): add yt sprint create and yt sprint update (YT-2)' (#48) from feat/sprint-create-update into main
    08a294e feat(sprint): add yt sprint create and yt sprint update (YT-2)
    dcd8f5c Merge pull request 'feat(issue): yt issue history reads activity stream (YT-4)' (#47) from feat/issue-history into main
    fcfdd06 feat(issue): yt issue history reads activity stream (YT-4)
    fb6c06a Merge pull request 'fix(sprint): use brace grouping for Board/sprint command (YT-3)' (#46) from fix/sprint-set-command-braces into main
    e75e2f1 fix(sprint): use brace grouping for Board/sprint command (YT-3)
    0d52260 Merge pull request 'fix(sprint): accept null start/finish from server (YT-2)' (#45) from fix/sprint-list-null-dates into main
    1b600c7 fix(sprint): accept null start/finish from server (YT-2)
    5ed1301 Merge pull request 'Release v0.3.0' (#44) from release/v0.3.0 into main
    8bb1581 Release v0.3.0
    479f407 Merge pull request 'fix(issue): surface description on issue inspect (YT-1)' (#43) from fix/issue-inspect-description into main
    05385d7 fix(issue): surface description on issue inspect (YT-1)
    abdd22a Merge pull request 'docs(readme): minor tweaks' (#42) from docs/readme-tweaks into main
    fdccf92 docs(readme): minor tweaks (link reference, example hostname, wrapping)
    b68b3b1 Merge pull request 'fix(models): accept null for optional string fields' (#41) from fix/project-list-null-deserialize into main
    a0cba65 fix(models): accept null for optional string fields
    fc194c8 Merge pull request 'feat(update): smoke-test new binary and print from/to versions' (#40) from feat/update-verify-by-running into main
    c478cbf feat(update): smoke-test new binary and print from/to versions
    706769a Merge pull request 'feat(list): flatten custom fields in --json output' (#39) from feat/list-flatten-custom-fields into main
    39ff3d1 feat(list): flatten custom fields in --json output
    e7c4824 Merge pull request 'feat(project): show details in list and show' (#38) from feat/project-list-details into main
    551312a feat(project): show details in list and show
    01a1b3f Merge pull request 'chore(ci): use http delete instead of curl DELETE' (#37) from chore/use-http-delete into main
    85ba19e chore(ci): use http delete instead of curl DELETE
    3062c2b Merge pull request 'Release v0.2.0' (#36) from release/v0.2.0 into main
    fe4243c Release v0.2.0
    e8d0053 Merge pull request 'feat(list): hide resolved by default, group by project, row counter' (#35) from feat/list-exclude-resolved into main
    cca8f69 feat(list): hide resolved by default, group by project, add row counter
    9873f35 Merge pull request 'feat(list): auto-paginate by default' (#34) from feat/list-auto-paginate into main
    bdb2f1d feat(list): auto-paginate by default; surface sprint sub-fetch errors
    b0b6de3 Merge pull request 'feat(update): verify SHA-256 sidecar before self-replace' (#33) from feat/update-checksum-verify into main
    099f25c feat(update): verify SHA-256 sidecar before self-replace
    c1506e2 Merge pull request 'feat: clear the post-sweep TODO residue' (#32) from feat/todo-residue-cleanup into main
    c2221b0 feat: clear the post-sweep residue (discovery, --json, secrecy)
    70e3d86 feat: Add JetBrains .idea directory
    117ed8e Merge pull request 'docs: prune TODO to post-sweep residue' (#31) from chore/todo-prune into main
    d827ccc docs: prune TODO to what is left after the Tier 1/2/3 sweep
    c275693 Merge pull request 'feat: Tier 3 bundle - hardening and observability gaps' (#30) from feat/tier-3-bundle into main
    d83f263 Merge branch 'main' into feat/tier-3-bundle
    92fcc85 Merge pull request 'feat: Tier 2 bundle - polish and scriptability gaps' (#29) from feat/tier-2-bundle into main
    8e020a3 Merge branch 'main' into feat/tier-2-bundle
    2a03d31 Merge pull request 'feat: Tier 1 bundle - all functional-completeness gaps from TODO' (#28) from feat/tier-1-bundle into main
    2dfac73 Merge branch 'main' into feat/tier-1-bundle
    01a2663 Merge pull request 'docs: capture new TODO items from the post-redesign audit' (#27) from chore/todo-additions into main
    dd7547e feat: Tier 3 bundle - hardening and observability gaps
    42eca0c feat: Tier 2 bundle - polish and scriptability gaps
    e7dcf43 feat: Tier 1 bundle - all functional-completeness gaps from TODO
    2950247 docs: capture new TODO items from the post-redesign audit
    2a7edc7 Merge pull request 'feat(config): per-instance config files keyed on URL subdomain' (#26) from feat/per-instance-config into main
    eff31ad feat(config): per-instance config files keyed on URL subdomain
    7f6e70d Merge pull request 'feat(update): pre-flight permission check with platform-specific hint' (#25) from feat/update-permission-check into main
    6fcec1d feat(update): pre-flight permission check with platform-specific hint
    c9c4309 Merge pull request 'feat: add yt update self-replacing binary updater' (#24) from feat/self-update into main
    c1f1bfe Merge branch 'main' into feat/self-update
    78c8111 feat: add yt update self-replacing binary updater
    10be705 Merge pull request 'chore: TODO.md backlog and version metadata in --version output' (#23) from chore/todo-and-version-stamp into main
    fd455c4 chore: TODO.md backlog and version metadata in --version output
    91ad2c3 Merge pull request 'feat(issue): add yt issue create' (#22) from feat/issue-create into main
    5d144d6 feat(issue): add yt issue create
    84d7de4 Merge pull request 'feat(ci): add Windows build alongside Linux' (#21) from feat/ci-build-windows into main
    2a1f047 feat(ci): add Windows build alongside Linux
    b446a72 Merge pull request 'chore(ci): rename publish-binary.yml to build-linux.yml' (#20) from chore/rename-workflow-build-linux into main
    8a970ca chore(ci): rename publish-binary.yml to build-linux.yml
    4dc0b30 Merge pull request 'feat(config): named configurations for multi-instance support' (#19) from feat/configurations-multi-instance into main
    4123be6 feat(config): named configurations for multi-instance support
    720ce88 Merge pull request 'docs: add Install section linking to the latest Generic Package' (#18) from docs/readme-latest-link into main
    fb47e67 docs: add Install section linking to the latest Generic Package
    54fe32e Merge pull request 'chore: rename shipped binary from youtrack-cli to yt' (#17) from chore/rename-binary-to-yt into main
    148b309 chore: rename shipped binary from youtrack-cli to yt
    6adbe02 Merge pull request 'feat: implement work add, work check, issue daily-sync (PR 5/5)' (#16) from feat/work-and-daily-sync into main
    a673441 feat: implement work add, work check, issue daily-sync
    ff07914 Merge pull request 'feat: implement four issue mutation commands (PR 4/5)' (#15) from feat/issue-mutations into main
    61b6b95 feat: implement four issue mutation commands
    2d88dde Merge pull request 'feat: implement issue inspect and issue sprint show (PR 3/5)' (#14) from feat/issue-inspect-and-sprint-show into main
    62505c1 feat: implement issue inspect and issue sprint show
    73f4551 Merge pull request 'feat: implement list, sprint list, sprint current (PR 2/5)' (#13) from feat/sprint-and-list into main
    26fa555 feat: implement list, sprint list, sprint current
    db79ff6 Merge pull request 'feat(board): implement board list (PR 1/5)' (#12) from feat/yt-client-and-board-list into main
    0503e42 feat(board): implement board list against a real YT API client
    5cfadd6 Merge pull request 'feat(config): move config file to XDG location' (#11) from feat/xdg-config-path into main
    4641a94 feat(config): move config file to XDG location
    a3e7119 Merge pull request 'feat(auth): add yt-cli style auth login --base-url' (#10) from feat/auth-login into main
    2052ef0 feat(auth): add auth login --base-url for credential setup
    1d9c9a4 Merge pull request 'ci(publish-binary): build binary in Docker via export stage, not on runner' (#9) from chore/remove-container-from-ci into main
    4df602f Merge branch 'main' into chore/remove-container-from-ci
    3c971a3 ci(publish-binary): build binary in Docker via export stage, not on runner
    f9b790c Merge pull request 'ci: drop OCI image build, keep binary publish only' (#8) from chore/remove-container-from-ci into main
    57999f8 ci: drop OCI image build, keep binary publish only
    bfb9f15 Merge pull request 'fix(ci): use Nu list spread instead of backslash continuations in extract step' (#7) from fix/workflow-nu-line-continuation into main
    af4d0d2 fix(ci): use Nu list spread instead of backslash continuations in extract step
    5ff2990 Merge pull request 'fix(build): stub build.rs in dep-prime; group justfile recipes' (#6) from fix/dockerfile-stub-buildscript-and-just-groups into main
    b6f5fe5 fix(build): stub build.rs with main fn in dep-prime; group justfile recipes
    5679c5d Merge pull request 'chore: rename NiceGuyIT to pandoras-box in repo metadata' (#5) from chore/rename-niceguyit-to-pandoras-box into main
    040d63f chore: rename NiceGuyIT to pandoras-box in repo metadata
    631b437 feat: Remove old PLAN
    902cb4a Merge pull request 'fix(ci): derive REGISTRY_USER from GITHUB_REPOSITORY_OWNER' (#4) from fix/ci-registry-user-from-github-owner into main
    ac894fc Merge branch 'main' into fix/ci-registry-user-from-github-owner
    7471b4f fix(ci): derive REGISTRY_USER from GITHUB_REPOSITORY_OWNER
    017a17f Merge pull request 'chore(ci): use FORGEJO_PAT for package deploy' (#3) from chore/forgejo-pat-deploy into main
    baa6143 chore(ci): use FORGEJO_PAT for package deploy
    c92a10a Merge pull request 'chore/governance-baseline' (#2) from chore/governance-baseline into main
    3b79997 chore: point Cargo.toml repo URL and OCI image source label at NiceGuyIT/youtrack-cli
    a4ca978 chore: adopt governance baseline (Docker / CI / dev container)
    262a590 Merge pull request 'feat: Milestone 1 scaffold - CLI skeleton and working config' (#1) from feat/milestone-1-scaffold into main
    d9d00ae feat: Milestone 1 scaffold - CLI skeleton and working config
    a300a6a chore: initialize repo

    Downloads