Commit Graph
243 Commits
Author SHA1 Message Date
雷电芽衣 8f8f637c81 fix(tools): register the inotify fd through tokio's unsafe constructor
tokio 1.54 deprecates AsyncFd::with_interest as unsound (RUSTSEC-2026-0386)
and Linux clippy flagged it. register_with_interest states the contract
the OwnedFd already keeps: the fd stays open and the same while the
AsyncFd owns it.
v0.1.22
2026-10-31 02:52:21 -04:00
雷电芽衣 2c9164b7fb chore(legal): regenerate THIRD-PARTY-NOTICES after the dependency fixes
The removed jsonwebtoken/rsa stack leaves the notices; updated crates
carry their new versions. tonic 0.14.9 puts MIT headers on its sources,
which cargo-about pasted in as ten license texts; about.toml now pins
tonic to its LICENSE file by checksum.
2026-10-31 02:33:58 -04:00
雷电芽衣 b0e252c871 chore(deny): accept the unmaintained crates that have no fix
unsafe-libyaml comes through serde_yaml 0.9, its final release. zvariant,
zbus_names and zvariant_derive were folded into zbus 6, but dark-light,
even at 3.0, still needs zbus 5. cargo deny check advisories passes.
2026-10-31 02:30:23 -04:00
雷电芽衣 dc0cff220b fix(deps): move zstd to 0.14 (RUSTSEC-2026-0391/0398/0403)
The workspace pin goes from 0.13 to 0.14, which brings zstd-safe 8.2.
tonic 0.14.9 follows onto zstd 0.14, so 0.13 leaves the lock. kigi-shell
declared zstd but never used it; the declaration goes.
2026-10-31 02:29:14 -04:00
雷电芽衣 10cbb8a5f1 fix(deps): move zip to 9.1 (RUSTSEC-2026-0367/0368/0369)
The workspace pin goes from 8 to 9, kigi-tools drops its separate zip 3
pin for the workspace dependency, and office_oxide 0.1.16 follows onto
zip 9. zip 9 decodes entry names on demand and can fail; the PPTX reader
and the Windows update unpacker now report that error. The zip unpacker
gains the two tests the tar path already had.
2026-10-31 02:18:43 -04:00
雷电芽衣 0894206a9f fix(deps): drop the dead jsonwebtoken and rsa dependencies
kigi-shell declared both, but nothing has used them since the device-flow
rewrite (021b824). Removing them takes 24 crates out of the graph,
crypto-bigint 0.5 (RUSTSEC-2026-0387) among them, and retires the rsa
ignore (RUSTSEC-2023-0071) in deny.toml.
2026-10-31 02:04:09 -04:00
雷电芽衣 086c3debe0 fix(deps): take the patched rustls, webpki, tokio and compression crates
cargo deny advisories went red after 0.1.21. These are the semver-compatible
fixes: rustls 0.23.46, rustls-webpki 0.103.16, webpki-roots and
webpki-root-certs 1.0.11, tokio 1.54.1, ctutils 0.4.7, libz-sys 1.1.31,
pulldown-cmark 0.13.6, zstd-safe 7.3.0, zstd-sys 2.1.2. clipboard-win 5.4.1
was yanked; 5.4.3 replaces it.
2026-10-31 01:58:25 -04:00
雷电芽衣 2bfcc72443 chore(legal): regenerate THIRD-PARTY-NOTICES for the 0.1.22 workspace version
Generated on Linux with cargo-about 0.9.2. 0.9.3 pastes ring's source
files in as license text, and a Windows run lists a different crate set,
so RELEASE.md now pins both.
2026-10-31 01:49:40 -04:00
雷电芽衣 c5bcc035ca chore(release): bump workspace version to 0.1.22
The first release built from main since the updater moved to
ELY-Open-Source/Kigi-CLI on GitHub. No dependency changed.
2026-10-31 01:39:54 -04:00
雷电芽衣 e352631791 docs(agents): the 0.1.22 sync check finds upstream still at 2bdd1d6 2026-10-31 01:38:03 -04:00
雷电芽衣 47e5cb862f Issue templates: [FEATURE REQUEST], [BUG REPORT] and [Other] 2026-10-19 21:21:30 -04:00
雷电芽衣 c0da2bd1e2 PR template: titles start with [FEATURE REQUEST], [BUG REPORT] or [Other] 2026-10-19 21:18:40 -04:00
ZacharyZhang-NYandClaude d8e0046ad6 site: footer License link uses GitHub's blob path
The footer still built the LICENSE URL with Gitea's /src/branch/main/
layout, which 404s on github.com.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 19:36:25 -04:00
ZacharyZhang-NYandClaude ce792f180d site: point kigicli.dev at GitHub
- Worker proxies install.sh/install.ps1 from raw.githubusercontent.com.
- dist bundle: repo, releases and issues links go to
  github.com/ELY-Open-Source/Kigi-CLI, and the Gitea icon and labels become
  the GitHub mark ("Star on GitHub").

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 19:22:12 -04:00
ZacharyZhang-NYandClaude a848b8f06c Move releases, self-update and links to ELY-Open-Source on GitHub
- kigi-env: update_base_url defaults to
  api.github.com/repos/ELY-Open-Source/Kigi-CLI/releases.
- install.sh / install.ps1: resolve releases from the same API.
- /feedback and the no-session feedback fallback open GitHub issues/new;
  /docs opens the README on GitHub.
- SECURITY, NOTICE, AGENTS, CONTRIBUTING: GitHub repo, issues and fork-based
  pull requests replace git.zacharyzhang.com and AGit.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 19:22:12 -04:00
ZacharyZhang-NYandClaude a21cb266c5 ci: release on GitHub-hosted runners
Move the tag-triggered release pipeline from .gitea/workflows to
.github/workflows for github.com/ELY-Open-Source/Kigi-CLI:

- ubuntu-latest (x86_64 linux), ubuntu-24.04-arm (native aarch64 linux),
  macos-latest (both darwin targets), windows-latest (msvc).
- gh release with GITHUB_TOKEN keeps the draft -> per-target upload ->
  SHA256SUMS -> publish ordering and the kigi-<version>-<triple> asset names.
- upload/download-artifact v4 for the checksum lines.
- docs/RELEASE.md: GitHub runner layout replaces the Gitea runner setup.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 19:22:11 -04:00
ZacharyZhang-NYandClaude Opus 5.5 4d034cc5c8 chore(release): bump workspace version to 0.1.21
Release / publish release (push) Successful in 3s
Release / prepare draft release (push) Successful in 8s
Release / build (x86_64-apple-darwin) (push) Successful in 1h4m24s
Release / build (x86_64-unknown-linux-gnu) (push) Successful in 26m25s
Release / build (aarch64-apple-darwin) (push) Successful in 1h8m15s
Release / build (aarch64-unknown-linux-gnu) (push) Successful in 27m25s
Release / build (x86_64-pc-windows-msvc) (push) Successful in 20m43s
The first release built and published on Gitea since the forge moved back.
THIRD-PARTY-NOTICES carries the new workspace crate versions; no dependency changed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.1.21
2026-10-10 02:54:48 -04:00
ZacharyZhang-NYandClaude Opus 5.5 ddecaea075 Return the forge to Gitea: releases, self-update, links, CI
The GitHub account is gone again, so git.zacharyzhang.com/ZacharyZhang-NY/Kigi-CLI
is the canonical repo. Reverse f7a4cb6:

- .gitea/workflows/release.yml: restore the Gitea edition retired in f7a4cb6
  (draft release, per-target upload, SHA256SUMS, then publish). The Windows
  leg runs on the windows-amd64 label the current runner advertises.
- .github/workflows/{release,warm-cache}.yml: drop them; they target hosted
  GitHub runners and softprops, and Gitea ignores them once .gitea exists.
- kigi-env: update_base_url defaults to the Gitea Releases API again.
- install.sh / install.ps1: resolve releases from git.zacharyzhang.com.
- feedback, /docs, SECURITY.md, frontend worker + site: repo, issues and
  raw-file links point at git.zacharyzhang.com.
- docs/RELEASE.md: Gitea edition of the checklist with the current runners.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 02:25:59 -04:00
ZacharyZhang-NY 963a3383df docs: add AGit pull request instructions 2026-10-09 19:46:41 +00:00
ZacharyZhang-NY cdeae6db89 feat(videos): add kigi-graph-bauhaus HyperFrames promo video project
Keep env.md (local MiniMax API key read by tts.py) out of the repo.
2026-10-09 15:43:10 -04:00
ZacharyZhang-NYandClaude Opus 5.5 719638875b docs(agents): upstream references come from the local grok-build clone
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 23:42:01 -04:00
雷电芽衣 e63d36468b chore(legal): regenerate THIRD-PARTY-NOTICES for the 0.1.20 workspace version
Release / build (aarch64-apple-darwin) (push) Canceled after 0s
Release / build (aarch64-unknown-linux-gnu) (push) Canceled after 0s
Release / build (x86_64-unknown-linux-gnu) (push) Failing after 6s
Release / build (x86_64-apple-darwin) (push) Canceled after 0s
Release / build (x86_64-pc-windows-msvc) (push) Canceled after 0s
Release / publish GitHub Release (push) Canceled after 0s
v0.1.20
2026-09-29 22:02:32 -04:00
雷电芽衣 389a931cad chore(release): bump workspace version to 0.1.20 2026-09-29 22:02:32 -04:00
雷电芽衣 9a2a9eac99 feat(login): custom provider logins fetch and select models
After the base URL, name, and key steps, the login now opens a model
selection screen instead of blindly saving. The listing fetch runs
concurrently with a manual-id input — a WAF challenge page or a 404 no
longer passes validation silently: a base without a /vN tail is probed
once as {base}/v1 and the working base is adopted, an anthropic-wire
listing that 401s on x-api-key retries once with Bearer (relays gate
GET /models on Bearer while /messages takes the key header), and a
failed fetch shows its reason while manual add stays usable. The chosen
ids persist as [platforms.<name>] models = [...]; catalog assembly
synthesizes selected ids the listing never served (before [model.*]
overrides so they compose) and filters unselected provider entries
(after overrides, authoritative in the provider namespace). Provider-
owned entries keep their declared wire against donor backend
inheritance, and listing errors quote line/column only — a reflected
body could carry the key.
2026-09-29 22:00:20 -04:00
雷电芽衣 1d631a07fa fix(tui): welcome auth inputs paste with Ctrl/Super+V
The API-key, custom-provider, and loopback paste boxes matched
KeyCode::Char without checking modifiers, so Ctrl+V inserted a literal
'v' and no chord read the host clipboard. The arms now read the
clipboard through is_paste_key/is_inline_paste_key (the picker.rs
pattern) and the char fallthrough is gated by is_text_input_key, so
Ctrl+letter chords no longer type.
2026-09-29 21:57:19 -04:00
雷电芽衣 c56660fe07 chore(legal): regenerate THIRD-PARTY-NOTICES for the 0.1.19 workspace version
Release / build (x86_64-unknown-linux-gnu) (push) Failing after 6s
Release / build (aarch64-apple-darwin) (push) Canceled after 0s
Release / build (aarch64-unknown-linux-gnu) (push) Canceled after 0s
Release / build (x86_64-apple-darwin) (push) Canceled after 0s
Release / build (x86_64-pc-windows-msvc) (push) Canceled after 0s
Release / publish GitHub Release (push) Canceled after 0s
v0.1.19
2026-09-29 16:54:21 -04:00
雷电芽衣 3bde7fe851 chore(release): bump workspace version to 0.1.19 2026-09-29 16:53:53 -04:00
雷电芽衣 793b93b74d test(subagent): the auth-scheme test joins the existing tests module 2026-09-29 16:53:07 -04:00
雷电芽衣 c9855c4bb6 fix(review): custom provider login comments, doc placement, subagent scheme test
The subagent auth-scheme lookup is now a function with a test. The failed-login
span carries the same method id as the successful one. README order matches the
code: the provider is saved, then the key is checked.
2026-09-29 16:50:03 -04:00
雷电芽衣 c4ef8a3779 docs+test: custom providers in README and AGENTS.md, provider-only startup PTY test
Also records the codex catalog at eight models and the 0.159.0 User-Agent.
2026-09-29 16:37:56 -04:00
雷电芽衣 ae40ba8da2 test(inspect): serialize the version_overrides test against KIGI_TEST_VERSION setters
It read the installed version while serial tests set a broken one, and failed
about one full run in four.
2026-09-29 16:34:19 -04:00
雷电芽衣 de42bb55c9 feat(models): gpt-6.1-sol joins the compiled-in codex catalog; codex User-Agent follows 0.159.0
The Codex backend (client_version 0.159.0) served eight list+supported models on
2026-09-29, gpt-6.1-sol first: context 272000, efforts low..max, default low.
POST /codex/responses with kigi's codex headers answers 200 and completes.
2026-09-29 16:34:19 -04:00
雷电芽衣 791f953c07 feat(login): custom provider rows, URL / name / key steps, and custom:<name> authenticate
The picker lists Custom provider (OpenAI compatible) and (Anthropic compatible).
The TUI asks for a base URL, a name (default from the host), and a key, saves the
definition and the key, and the agent validates the key against GET {base}/models.
PTY e2e covers both wires against the mock inference server.
2026-09-29 16:10:41 -04:00
雷电芽衣 eb86d7ec26 fix(shell): turns read the auth scheme and BYOK status from the live catalog
reconstruct_full_config and the subagent spawn resolved both from a disk reload
that never holds fetched entries, so a fetched Messages model (anthropic,
minimax) went out with Authorization: Bearer instead of x-api-key.
2026-09-29 16:10:41 -04:00
雷电芽衣 2ca1f3baa7 feat(shell): custom providers declared in config.toml join the model catalog
[platforms.<name>] with base_url and api (openai or anthropic) declares a provider.
Its key lives in auth.json under the name or in the table; /models is fetched per
provider, entries are keyed <name>/<model>, and the key is stamped in memory only.
2026-09-29 14:50:24 -04:00
雷电芽衣 4514b66ffe feat(models): custom provider wire kinds, name and base-URL rules 2026-09-29 14:08:29 -04:00
雷电芽衣 45edd7bf33 docs(agents): record the 0.1.19 upstream sync window and what it left behind 2026-09-29 14:03:38 -04:00
雷电芽衣 ceff1d7cc7 fix(tui): a second Ctrl+C cancels a plan comment
The first Ctrl+C clears the draft; the second did nothing and left the user in
comment mode. Both the approval and the casual preview paths now cancel.
2026-09-29 14:02:43 -04:00
雷电芽衣 041c5ca030 fix(tui): a bracketed paste that is not the clipboard never attaches its image
The origin check ran only on Otty. An IME commit or a diverged tmux buffer on any
other terminal attached whatever image sat on the clipboard.
2026-09-29 13:54:45 -04:00
雷电芽衣 0e063e5b02 fix(tui): y copies the whole queued prompt; a finished queue edit refocuses the composer
y copied the truncated display row. Saving or discarding a row edit left focus on
the queue pane, so the next Enter re-opened the edit instead of sending.
2026-09-29 13:43:56 -04:00
雷电芽衣 b840fff80c fix(sampler): Messages streams keep every thinking block and join split signatures
A turn with interleaved thinking lost all but its last signed block on
replay, and a signature split across deltas kept only its last part.
2026-09-29 13:32:03 -04:00
雷电芽衣 cb4c2eaad9 update version
Release / build (x86_64-unknown-linux-gnu) (push) Failing after 6s
Release / build (aarch64-apple-darwin) (push) Canceled after 0s
Release / build (aarch64-unknown-linux-gnu) (push) Canceled after 0s
Release / build (x86_64-pc-windows-msvc) (push) Canceled after 0s
Release / publish GitHub Release (push) Canceled after 0s
Release / build (x86_64-apple-darwin) (push) Canceled after 0s
v0.1.18
2026-09-22 18:43:42 -04:00
雷电芽衣 cfde4e91a1 chore(legal): regenerate THIRD-PARTY-NOTICES for the 0.1.18 workspace version 2026-09-22 18:42:49 -04:00
雷电芽衣 5082bd47ee chore(release): bump workspace version to 0.1.18 2026-09-22 18:42:49 -04:00
雷电芽衣 5d70140d62 docs(agents): the codex table is seven models 2026-09-22 18:42:49 -04:00
雷电芽衣 299c6bcfcb chore(sampler): codex User-Agent follows the 0.156.0 release 2026-09-22 18:42:49 -04:00
雷电芽衣 6be9ab0aea feat(models): gpt-6-sol and gpt-6-luna join the compiled-in codex catalog
The Codex backend (client_version 0.156.0) served seven list+supported
models on 2026-09-22: gpt-6-astra, gpt-6-sol, gpt-6-luna, then
gpt-5.6-sol/terra/luna and gpt-5.5. Sol and Luna carry context 272000,
efforts low..max, default medium. POST /codex/responses with kigi's codex
headers answers 200 and completes for both.
2026-09-22 18:42:49 -04:00
ZacharyZhang-NY 0e4e446fe4 docs(agents): record where Shift+Enter can and cannot arrive
Release / build (x86_64-unknown-linux-gnu) (push) Failing after 6s
Release / publish GitHub Release (push) Canceled after 0s
Release / build (aarch64-apple-darwin) (push) Canceled after 0s
Release / build (aarch64-unknown-linux-gnu) (push) Canceled after 0s
Release / build (x86_64-apple-darwin) (push) Canceled after 0s
Release / build (x86_64-pc-windows-msvc) (push) Canceled after 0s
v0.1.17
2026-09-21 19:25:20 -04:00
ZacharyZhang-NY 008b6623f6 docs(tui): correct the VTE and WezTerm notes around the Shift+Enter hint 2026-09-21 19:25:04 -04:00
ZacharyZhang-NY f8cd33d19d fix(tui): the Shift+Enter hint follows the protocol, not a brand list
`shift_enter_unavailable` kept its own list of brands and missed every
other reason the Kitty keyboard protocol gets skipped: JetBrains, screen,
tmux below 3.3 and tmux with `extended-keys off` all swallow it, yet the
prompt still advertised Shift+Enter there. It now reads
`kitty_skip_reason` directly. Two skips deliver the modifier another way
and stay available: Apple Terminal, where `route_enter` polls
CoreGraphics, and Windows Terminal, where the console key record carries
SHIFT — a bare ConHost, only optimistically refined to Windows Terminal,
keeps advertising Alt+Enter.

The old list also carried a `VTE_VERSION >= 8200` cutoff, citing VTE
0.82.0 as the first release with the protocol. It is not: at tag 0.82.0
the string "kitty" appears nowhere in `src/parser-seq.py`, `src/vte.cc`
or `src/widget.cc`, and `_vte_keymap_GDK_Return` encodes only Alt
(`ESC CR`), so Shift+Enter leaves a VTE terminal as the same bare CR as
Enter. Every VTE now advertises Alt+Enter, and `/terminal-setup` stops
telling GNOME Terminal users to upgrade to a version that would not
help. It also stops advertising Alt+Enter to WezTerm, which binds that
chord to ToggleFullScreen.
2026-09-21 19:19:21 -04:00