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>
This commit is contained in:
14 files changed
+28
-35
No files matched your search
+1
-1
@@ -6,7 +6,7 @@
|
||||
.wrangler/
|
||||
node_modules/
|
||||
|
||||
# Runner-setup prompt; holds a Gitea registration token once filled in.
|
||||
# Runner-setup prompt; may hold a runner registration token once filled in.
|
||||
/prompt.txt
|
||||
|
||||
# Local test credentials
|
||||
|
||||
@@ -68,7 +68,7 @@ a design against the 0.1.15 teardown), MCP servers on protocol 2026-07-28
|
||||
## Hard constraints
|
||||
|
||||
- **Zero egress**: only `auth.kimi.com`, `api.kimi.com`, `api.moonshot.cn`,
|
||||
`api.moonshot.ai`, Gitea Releases (`git.zacharyzhang.com`), user-configured MCP servers, credentialed
|
||||
`api.moonshot.ai`, GitHub Releases, user-configured MCP servers, credentialed
|
||||
provider endpoints, and `models.dev` (metadata refresh, ONLY when an enabled
|
||||
platform's `/models` lacks it — `wire_serves_metadata=false`, never
|
||||
Kimi/Moonshot, `KIGI_MODELS_DEV_URL=0` disables). No telemetry, no analytics,
|
||||
@@ -640,4 +640,4 @@ client-side, no backend surface.
|
||||
grok.com references live only there and in `kigi-sampler`/proxy types.
|
||||
- M2: server-side search/fetch (F5), command parity with kimi-cli 1.49.0
|
||||
(F6), one-time `~/.kimi/config.toml` import (F7), F9 smoke list, perf CI.
|
||||
- M3: Gitea Releases distribution, install scripts, self-update (F8).
|
||||
- M3: GitHub Releases distribution, install scripts, self-update (F8).
|
||||
+5
-12
@@ -21,16 +21,9 @@ cargo deny check advisories
|
||||
- Upstream syncs are evaluated commit-by-commit and cherry-picked manually;
|
||||
see the PRD §8.1 policy (`git range-diff` records the adopted set).
|
||||
|
||||
## Opening a pull request on git.zacharyzhang.com
|
||||
## Opening a pull request
|
||||
|
||||
Forking is disabled on this server. Open pull requests with AGit instead:
|
||||
|
||||
1. Register an account at https://git.zacharyzhang.com
|
||||
2. Clone, commit your changes, then push to a `refs/for/<target-branch>` ref:
|
||||
|
||||
```bash
|
||||
git clone https://git.zacharyzhang.com/ZacharyZhang-NY/Kigi-CLI.git
|
||||
git push origin HEAD:refs/for/main -o topic=<short-name> -o title="<PR title>" -o description="<PR body>"
|
||||
```
|
||||
|
||||
3. To update the pull request, push again with the same `topic`.
|
||||
Fork [ELY-Open-Source/Kigi-CLI](https://github.com/ELY-Open-Source/Kigi-CLI),
|
||||
push your branch to the fork, and open a pull request against `main`. Report
|
||||
bugs and request features on the
|
||||
[issue tracker](https://github.com/ELY-Open-Source/Kigi-CLI/issues).
|
||||
@@ -14,7 +14,7 @@ Modifications relative to the upstream work (Apache License 2.0 §4(b) notice):
|
||||
subscription-proxy endpoints.
|
||||
- Endpoints re-targeted at the Kimi Code subscription API
|
||||
(api.kimi.com/coding/v1), the Moonshot open platform (api.moonshot.cn/v1,
|
||||
api.moonshot.ai/v1), and Gitea Releases (git.zacharyzhang.com) for self-update.
|
||||
api.moonshot.ai/v1), and GitHub Releases for self-update.
|
||||
|
||||
This product includes code ported from openai/codex and sst/opencode; see
|
||||
crates/codegen/kigi-tools/THIRD_PARTY_NOTICES.md for the license terms and
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
# Security Policy
|
||||
|
||||
Kigi is a community build; report vulnerabilities on the
|
||||
[Kigi issue tracker](https://git.zacharyzhang.com/ZacharyZhang-NY/Kigi-CLI/issues).
|
||||
[Kigi issue tracker](https://github.com/ELY-Open-Source/Kigi-CLI/issues).
|
||||
Issues there are public, so please leave out any detail that would make a
|
||||
report directly exploitable — open with the affected area and impact, and a
|
||||
maintainer will follow up for the rest.
|
||||
|
||||
@@ -21,7 +21,7 @@ pub struct KigiEndpoints {
|
||||
pub const PRODUCTION_ENDPOINTS: KigiEndpoints = KigiEndpoints {
|
||||
coding_api_base_url: "https://api.kimi.com/coding/v1",
|
||||
oauth_host: "https://auth.kimi.com",
|
||||
update_base_url: "https://git.zacharyzhang.com/api/v1/repos/ZacharyZhang-NY/Kigi-CLI/releases",
|
||||
update_base_url: "https://api.github.com/repos/ELY-Open-Source/Kigi-CLI/releases",
|
||||
upgrade_page_url: "https://www.kimi.com/code/",
|
||||
};
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ use std::sync::Arc;
|
||||
use serde::Serialize;
|
||||
|
||||
/// Where non-subscription users (no OAuth session) submit feedback instead.
|
||||
pub const FEEDBACK_ISSUES_URL: &str = "https://git.zacharyzhang.com/ZacharyZhang-NY/Kigi-CLI/issues";
|
||||
pub const FEEDBACK_ISSUES_URL: &str = "https://github.com/ELY-Open-Source/Kigi-CLI/issues/new";
|
||||
|
||||
/// HTTP error from the feedback endpoint with a preserved status code, so
|
||||
/// callers can distinguish auth failures (401) without string matching.
|
||||
|
||||
@@ -10,7 +10,7 @@ use crate::slash::command::{AppCtx, ArgItem, CommandExecCtx, CommandResult, Slas
|
||||
|
||||
/// Online docs landing page (hardcoded like other TUI deep-links; the
|
||||
/// project README is the docs entry point for the repo-hosted docs).
|
||||
pub const BUILD_DOCS_URL: &str = "https://git.zacharyzhang.com/ZacharyZhang-NY/Kigi-CLI/src/branch/main/README.md";
|
||||
pub const BUILD_DOCS_URL: &str = "https://github.com/ELY-Open-Source/Kigi-CLI/blob/main/README.md";
|
||||
|
||||
/// Open How-to Guides or online Build docs.
|
||||
pub struct DocsCommand;
|
||||
|
||||
@@ -6,7 +6,7 @@ use crate::slash::command::{CommandExecCtx, CommandResult, SlashCommand};
|
||||
/// Where feedback goes: the project's own issue tracker. Kigi is a community
|
||||
/// build, so its feedback belongs on its own repo — mirroring the official
|
||||
/// kimi-cli, whose `/feedback` opens its repo's issues page.
|
||||
pub const FEEDBACK_ISSUES_URL: &str = "https://git.zacharyzhang.com/ZacharyZhang-NY/Kigi-CLI/issues";
|
||||
pub const FEEDBACK_ISSUES_URL: &str = "https://github.com/ELY-Open-Source/Kigi-CLI/issues/new";
|
||||
|
||||
/// Open the Kigi issue tracker in the browser.
|
||||
pub struct FeedbackCommand;
|
||||
|
||||
@@ -695,7 +695,7 @@ pub(crate) fn detect_platform() -> Result<(&'static str, &'static str)> {
|
||||
|
||||
/// Rust target triple for this build — the key that maps a platform to its
|
||||
/// release-asset name. Must stay in lockstep with the five targets built by
|
||||
/// `.gitea/workflows/release.yml` and the tables in install.sh/install.ps1.
|
||||
/// `.github/workflows/release.yml` and the tables in install.sh/install.ps1.
|
||||
pub(crate) fn target_triple() -> Result<&'static str> {
|
||||
let triple = if cfg!(all(target_os = "macos", target_arch = "aarch64")) {
|
||||
"aarch64-apple-darwin"
|
||||
@@ -2653,7 +2653,7 @@ mod tests {
|
||||
#[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))]
|
||||
#[test]
|
||||
fn test_release_asset_name_matches_release_workflow_naming() {
|
||||
// Must stay in lockstep with .gitea/workflows/release.yml, which
|
||||
// Must stay in lockstep with .github/workflows/release.yml, which
|
||||
// publishes kigi-<version>-<target-triple>.{tar.gz|zip}.
|
||||
let triple = target_triple().unwrap();
|
||||
assert!(
|
||||
|
||||
@@ -10,7 +10,7 @@ const TTL_SECONDS_BEFORE_AUTO_UPDATE: Duration = Duration::from_secs(60 * 30);
|
||||
|
||||
/// Release channel: this repo's Releases (PRD F8). The API base is resolved
|
||||
/// through [`kigi_env::update_base_url`] — production default
|
||||
/// `https://git.zacharyzhang.com/api/v1/repos/ZacharyZhang-NY/Kigi-CLI/releases`,
|
||||
/// `https://api.github.com/repos/ELY-Open-Source/Kigi-CLI/releases`,
|
||||
/// overridable via `KIGI_UPDATE_BASE_URL` for mirrors and tests.
|
||||
pub(crate) fn update_base_url() -> String {
|
||||
kigi_env::update_base_url()
|
||||
@@ -533,7 +533,7 @@ mod tests {
|
||||
#[test]
|
||||
fn test_release_json_parses_github_wire_shape() {
|
||||
let json = r#"{
|
||||
"url": "https://git.zacharyzhang.com/api/v1/repos/ZacharyZhang-NY/Kigi-CLI/releases/1",
|
||||
"url": "https://api.github.com/repos/ELY-Open-Source/Kigi-CLI/releases/1",
|
||||
"tag_name": "v0.1.0",
|
||||
"name": "Kigi 0.1.0",
|
||||
"draft": false,
|
||||
@@ -541,13 +541,13 @@ mod tests {
|
||||
"assets": [
|
||||
{
|
||||
"name": "kigi-0.1.0-aarch64-apple-darwin.tar.gz",
|
||||
"browser_download_url": "https://git.zacharyzhang.com/ZacharyZhang-NY/Kigi-CLI/releases/download/v0.1.0/kigi-0.1.0-aarch64-apple-darwin.tar.gz",
|
||||
"browser_download_url": "https://github.com/ELY-Open-Source/Kigi-CLI/releases/download/v0.1.0/kigi-0.1.0-aarch64-apple-darwin.tar.gz",
|
||||
"size": 123,
|
||||
"content_type": "application/gzip"
|
||||
},
|
||||
{
|
||||
"name": "SHA256SUMS",
|
||||
"browser_download_url": "https://git.zacharyzhang.com/ZacharyZhang-NY/Kigi-CLI/releases/download/v0.1.0/SHA256SUMS"
|
||||
"browser_download_url": "https://github.com/ELY-Open-Source/Kigi-CLI/releases/download/v0.1.0/SHA256SUMS"
|
||||
}
|
||||
]
|
||||
}"#;
|
||||
@@ -560,7 +560,7 @@ mod tests {
|
||||
let asset = r.asset("kigi-0.1.0-aarch64-apple-darwin.tar.gz").unwrap();
|
||||
assert_eq!(
|
||||
asset.browser_download_url,
|
||||
"https://git.zacharyzhang.com/ZacharyZhang-NY/Kigi-CLI/releases/download/v0.1.0/kigi-0.1.0-aarch64-apple-darwin.tar.gz"
|
||||
"https://github.com/ELY-Open-Source/Kigi-CLI/releases/download/v0.1.0/kigi-0.1.0-aarch64-apple-darwin.tar.gz"
|
||||
);
|
||||
assert_eq!(
|
||||
r.asset("SHA256SUMS").unwrap().name,
|
||||
|
||||
@@ -114,7 +114,7 @@ pub fn host_platform() -> String {
|
||||
}
|
||||
|
||||
/// Host Rust target triple, matching `auto_update::target_triple()` and the
|
||||
/// release-asset naming in `.gitea/workflows/release.yml`.
|
||||
/// release-asset naming in `.github/workflows/release.yml`.
|
||||
pub fn host_triple() -> &'static str {
|
||||
if cfg!(all(target_os = "macos", target_arch = "aarch64")) {
|
||||
"aarch64-apple-darwin"
|
||||
|
||||
+3
-3
@@ -11,7 +11,7 @@
|
||||
# Environment:
|
||||
# KIGI_SHARE_DIR install root (default: %USERPROFILE%\.kigi)
|
||||
# KIGI_UPDATE_BASE_URL releases API base, GitHub/Gitea-shaped (default:
|
||||
# https://git.zacharyzhang.com/api/v1/repos/ZacharyZhang-NY/Kigi-CLI/releases)
|
||||
# https://api.github.com/repos/ELY-Open-Source/Kigi-CLI/releases)
|
||||
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
@@ -26,8 +26,8 @@ function Fail([string]$Message) {
|
||||
exit 1
|
||||
}
|
||||
|
||||
$Repo = "ZacharyZhang-NY/Kigi-CLI"
|
||||
$ApiBase = if ($env:KIGI_UPDATE_BASE_URL) { $env:KIGI_UPDATE_BASE_URL } else { "https://git.zacharyzhang.com/api/v1/repos/$Repo/releases" }
|
||||
$Repo = "ELY-Open-Source/Kigi-CLI"
|
||||
$ApiBase = if ($env:KIGI_UPDATE_BASE_URL) { $env:KIGI_UPDATE_BASE_URL } else { "https://api.github.com/repos/$Repo/releases" }
|
||||
$KigiHome = if ($env:KIGI_SHARE_DIR) { $env:KIGI_SHARE_DIR } else { Join-Path $env:USERPROFILE ".kigi" }
|
||||
$Triple = "x86_64-pc-windows-msvc"
|
||||
|
||||
|
||||
+3
-3
@@ -14,14 +14,14 @@
|
||||
# Environment:
|
||||
# KIGI_SHARE_DIR install root (default: ~/.kigi)
|
||||
# KIGI_UPDATE_BASE_URL releases API base, GitHub/Gitea-shaped (default:
|
||||
# https://git.zacharyzhang.com/api/v1/repos/ZacharyZhang-NY/Kigi-CLI/releases)
|
||||
# https://api.github.com/repos/ELY-Open-Source/Kigi-CLI/releases)
|
||||
#
|
||||
# Fails fast on any error; never leaves a partial binary as the active kigi.
|
||||
|
||||
set -eu
|
||||
|
||||
REPO="ZacharyZhang-NY/Kigi-CLI"
|
||||
API_BASE="${KIGI_UPDATE_BASE_URL:-https://git.zacharyzhang.com/api/v1/repos/${REPO}/releases}"
|
||||
REPO="ELY-Open-Source/Kigi-CLI"
|
||||
API_BASE="${KIGI_UPDATE_BASE_URL:-https://api.github.com/repos/${REPO}/releases}"
|
||||
KIGI_HOME="${KIGI_SHARE_DIR:-$HOME/.kigi}"
|
||||
|
||||
err() {
|
||||
|
||||
Reference in new issue
Block a user