Skip to content
Draft
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
1 change: 1 addition & 0 deletions .github/trigger/memory-clean-port
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
current-dev-v1
6 changes: 6 additions & 0 deletions .github/workflows/dev-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@ on:
required: true
type: string

# Least privilege by default: no dev-ci job needs a write-scoped GITHUB_TOKEN.
# Every job only checks out, installs, tests, and exchanges artifacts through the
# Actions artifact API, so a read-scoped token is sufficient.
permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
Expand Down
10 changes: 5 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ exclude = ["crates/brush-core-vendored", "crates/brush-builtins-vendored", "crat
resolver = "3"

[workspace.package]
version = "0.11.8"
version = "0.11.10"
edition = "2024"
license = "MIT"
authors = ["Yeachan-Heo"]
Expand Down
72 changes: 36 additions & 36 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion crates/pi-natives/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ use napi_derive::napi;
/// MUST stay in sync with `VERSION_SENTINEL_EXPORT` in
/// `packages/natives/native/index.js` (which derives the name from
/// `package.json#version`).
#[napi(js_name = "__piNativesV0_11_8")]
#[napi(js_name = "__piNativesV0_11_10")]
pub const fn pi_natives_version_sentinel() {}

/// Publish-result wire-contract sentinel.
Expand Down
15 changes: 7 additions & 8 deletions docs/environment-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -236,19 +236,21 @@ providers:

`gjc --tmux` launches the interactive TUI inside a fresh GJC-managed tmux session. Plain `gjc --tmux` does not auto-attach a scoped managed session from the same project/branch; use `gjc --tmux --continue` or `gjc session attach <session>` when you intend to continue existing tmux context. `gjc --tmux --resume` still reaches the inner GJC session resolver, so value-less resume shows the session picker and `--resume <id>` honors that target instead of reusing a branch tmux session. Older-version sessions are not auto-attached after upgrades. When GJC creates a session it applies a profile that is **scoped to the GJC session only** (it never runs `set -g` / global tmux options), including:

- `mouse on` — enables mouse-wheel scrolling into tmux copy-mode (history/scrollback).
- `mouse on` — enables tmux copy-mode scrolling when GJC mouse support is disabled.
- `set-clipboard on` and a readable copy-mode `mode-style`.
- GJC ownership/identity tags (`@gjc-profile`, version, branch/project markers).

This profile is applied on macOS, Linux, WSL (Linux), and native Windows when a compatible tmux provider is available. It is applied **only to sessions GJC itself creates**. If you start tmux yourself and then run `gjc` inside it, GJC leaves your tmux configuration untouched — add `set -g mouse on` to your own `~/.tmux.conf`, or relaunch with `gjc --tmux` to get the managed profile.
This profile is applied on macOS, Linux, WSL (Linux), and native Windows when a compatible tmux provider is available. It is applied **only to sessions GJC itself creates**. If you start tmux yourself and then run `gjc` inside it, GJC leaves your tmux configuration untouched. GJC's own mouse support is disabled by default, so the host terminal or tmux retains wheel and selection behavior. Add `set -g mouse on` to your own `~/.tmux.conf` when you want tmux copy-mode scrolling.

Set `mouse.enabled: true` to let GJC capture the wheel for virtual session scrolling. When GJC owns mouse input, dragging across rendered text highlights the selection and copies it to the system clipboard on release.

| Variable | Behavior |
| --- | --- |
| `GJC_LAUNCH_POLICY` | Launch policy for `--tmux` startup: `tmux` (default) or `direct` (skip the tmux session) |
| `GJC_TMUX_SESSION` | Explicit tmux session name override for `--tmux` startup. Use a unique value (for example `GJC_TMUX_SESSION=gjc-fresh-$(date +%s) gjc --tmux`) to force a fresh named session. |
| `GJC_TMUX_COMMAND` | tmux binary/name override for every GJC tmux flow (`GJC_TEAM_TMUX_COMMAND` is honored as a team-path alias). This is not a shell command line; include only the executable path/name, not flags. |
| `GJC_TMUX_PROFILE` | Set `0`/`false`/`off` to apply only the required ownership tags and skip the scroll/mouse/clipboard profile |
| `GJC_MOUSE` | Set `0`/`false`/`off` to skip `mouse on`, leaving wheel scrolling to the host terminal instead of tmux copy-mode |
| `GJC_MOUSE` | Set `0`/`false`/`off` to skip the managed profile's tmux `mouse on`; this does not disable GJC's own mouse support |
| `GJC_PSMUX_COMMAND` | Identifies a psmux wrapper for Windows alias resolution. The value must resolve to the same executable identity as the selected `tmux` command; unresolved or conflicting evidence fails closed. |
| `GJC_PSMUX_DETECTION` | Set `0`/`false`/`off` to skip banner-based psmux detection. Executable-name and alias-identity safety checks still apply. |
| `GJC_PSMUX_FORCE_DETECT` | Set `1`/`true`/`on` to re-probe the multiplexer on every call instead of caching the per-process verdict. |
Expand All @@ -269,12 +271,9 @@ GJC does not currently expose a supported `GJC_TMUX_NAMESPACE` runtime knob or p

#### WSL / Windows Terminal scrolling

On WSL with Windows Terminal, scrolling behaves differently depending on whether tmux owns the mouse:

- **With the GJC profile (default):** the mouse wheel enters tmux copy-mode and scrolls the pane's scrollback. Keyboard fallback: `Ctrl-b [` to enter copy-mode, then `PgUp`/arrows; `q` to exit.
- **Without tmux mouse capture (`GJC_MOUSE=off`, or running outside `gjc --tmux`):** Windows Terminal handles the wheel and scrolls its own native scrollback.
GJC's SGR mouse support is disabled by default, so tmux or Windows Terminal retains wheel ownership. In a GJC-managed tmux session, the default profile's `mouse on` enters tmux copy-mode and scrolls pane history.

If the wheel does not scroll inside `gjc --tmux` on WSL, confirm the session is GJC-managed (`gjc session list`) so the `mouse on` profile is actually applied; sessions you launched yourself do not receive it. Set `GJC_MOUSE=off` if you prefer Windows Terminal's native scrollback over tmux copy-mode.
Set `mouse.enabled: true` to make the wheel scroll GJC's virtual session viewport, including inside `gjc --tmux`. Set `GJC_MOUSE=off` as well as leaving GJC mouse support disabled to skip tmux mouse capture and let Windows Terminal handle its native scrollback. Keyboard fallback for tmux copy-mode remains `Ctrl-b [`, followed by `PgUp`/arrows; press `q` to exit.

### Team tmux backend, dry-run, and state paths

Expand Down
26 changes: 13 additions & 13 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,19 @@
"@bufbuild/protoc-gen-es": "^2.12.0",
"@mozilla/readability": "^0.6.0",
"@napi-rs/cli": "3.6.2",
"@gajae-code/stats": "0.11.8",
"@gajae-code/agent-core": "0.11.8",
"@gajae-code/ai": "0.11.8",
"@gajae-code/bridge-client": "0.11.8",
"@gajae-code/coding-agent": "0.11.8",
"@gajae-code/natives": "0.11.8",
"@gajae-code/natives-darwin-arm64": "0.11.8",
"@gajae-code/natives-darwin-x64": "0.11.8",
"@gajae-code/natives-linux-arm64": "0.11.8",
"@gajae-code/natives-linux-x64": "0.11.8",
"@gajae-code/natives-win32-x64": "0.11.8",
"@gajae-code/tui": "0.11.8",
"@gajae-code/utils": "0.11.8",
"@gajae-code/stats": "0.11.10",
"@gajae-code/agent-core": "0.11.10",
"@gajae-code/ai": "0.11.10",
"@gajae-code/bridge-client": "0.11.10",
"@gajae-code/coding-agent": "0.11.10",
"@gajae-code/natives": "0.11.10",
"@gajae-code/natives-darwin-arm64": "0.11.10",
"@gajae-code/natives-darwin-x64": "0.11.10",
"@gajae-code/natives-linux-arm64": "0.11.10",
"@gajae-code/natives-linux-x64": "0.11.10",
"@gajae-code/natives-win32-x64": "0.11.10",
"@gajae-code/tui": "0.11.10",
"@gajae-code/utils": "0.11.10",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/context-async-hooks": "^2.0.0",
"@opentelemetry/sdk-trace-base": "^2.0.0",
Expand Down
2 changes: 2 additions & 0 deletions packages/agent/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

## [Unreleased]

## [0.11.10] - 2026-07-25

## [0.11.8] - 2026-07-23

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion packages/agent/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"type": "module",
"name": "@gajae-code/agent-core",
"version": "0.11.8",
"version": "0.11.10",
"description": "General-purpose agent with transport abstraction, state management, and attachment support",
"homepage": "https://gajae-code.com",
"author": "Yeachan-Heo and Gajae Code Contributors",
Expand Down
4 changes: 4 additions & 0 deletions packages/ai/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# Changelog

## [Unreleased]

## [0.11.10] - 2026-07-25

## [0.11.9] - 2026-07-24
### Fixed

- Credential selection and aggregate usage callers now stop awaiting immediately when their own signal aborts without cancelling shared usage fetches, and ranking deadlines no longer re-await the same stalled usage request during credential resolution.
Expand Down
Loading
Loading