Commit Graph
24 Commits
Author SHA1 Message Date
Kang 010f1e4215 feat(agents): add Windows RDP support and remove ActiveX helper
- Introduced `nyaterm-windows-rdp` for Windows Native RDP integration, detailing its architecture and isolation requirements.
- Removed the `nyaterm-activex-helper` crate, including all related files and dependencies, to streamline the project and focus on modern RDP implementations.
- Updated documentation in `AGENTS.md` to reflect these changes and clarify the new architecture.
- Adjusted `Cargo.toml` and `Cargo.lock` to remove references to the deleted ActiveX helper and include the new RDP crate.
- Enhanced CI workflows to configure MSVC for Windows builds, ensuring compatibility with the new RDP implementation.
2026-11-02 19:17:20 +08:00
Kang b0a8d66695 chore: update references from gpui-component to gpui-kit
- Replaced all instances of `gpui-component` with `gpui-kit` across various files to reflect the new naming convention.
- Updated Cargo.toml and documentation to ensure consistency in dependency management and integration boundaries.
- Adjusted comments and code references to align with the new structure, enhancing clarity and maintainability.
2026-09-22 00:00:58 +08:00
Kang ec01616445 docs(agents): streamline scrollbar usage instructions
- Clarified the usage of `NyaScrollable` for scroll containers in the documentation.
- Removed redundant information regarding `overflow_y_scroll()` and `scrollbar_width` to enhance readability.
2026-08-30 20:35:17 +08:00
KangandClaude Opus 4.8 fd33944d18 build(deps): bump gpui-component to the rebase onto upstream main
Moves the pinned `nyakang/gpui-component` revision from `d44fcb46` to `626ec5fa`,
which rebases the series from `b1e78a51` onto `0bfcb640`, 56 upstream commits
later, and drops one of its four patches.

`fix(theme): re-project scrollbar theme on every palette change` is gone because
upstream fixed the same bug independently in `222cf964`, and better: where the
NyaTerm patch rebuilt only `gpui_base::Theme::scrollbar`, upstream's
`Theme::sync_base` replaces the whole Base projection, and it comes with a
regression test. So `theme_bridge.rs` now calls `Theme::sync_base(cx)` after it
writes the scrollbar colors and mode, and `AGENTS.md` says so. The two guard tests
that assert the Base projection still carries `ScrollbarMode::Hover` after a
same-luminance re-apply pass unchanged, which is what makes the swap safe.

The other three patches are still needed and still apply: `crates/base/src/
scrollbar.rs` and `crates/base/src/dialog.rs` are byte-identical upstream, and the
segmented-tab fix needed a one-line resolution after upstream reworked that render
body — its `w_full` is re-inserted into upstream's shape.

The fork's `.github/workflows/nyaterm.yml` pins the zed revision it validates
against through a config-level `[patch]`; it was stale at `e83a00dc` and now names
`275f31ac`, the revision the previous commit bumped this workspace to. That pin
has to move with this manifest or the branch is verified against a gpui the
application does not use.

Also arriving, needing no changes here: `gpui_component::init` now also runs
`command::init` and `notification::init`, the dock layer was rewritten (NyaTerm
uses none of it), and `cubic_bezier` was aligned with CSS, which is a visual
difference in dialog motion. Those want an eyeball pass in the running app.

Tested on Windows 11: cargo clippy --workspace --all-targets --locked (no errors)
and cargo test --workspace --no-fail-fast, all 28 suites passing. On the fork,
against the matching zed checkout: cargo test -p gpui-base at 574 passed including
both reveal_hover cases, and cargo check -p gpui-component clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-26 20:53:49 +08:00
Kang 264b7b298a docs: describe the child-window model and drop the deleted WindowRuntimeStore
The layout guide claimed NyaTerm remembers child-window position, size and modal
relationships. The Tauri implementation did, through a `stateKey` and
`load_child_window_state`; the GPUI port dropped it and this change does not add
it back, so the guide now says what actually happens: where a child window opens,
which ones block the main window and why, which one stays on top, and the
keyboard. Both languages.

`WindowRuntimeStore` was deleted in 15994ef6 along with the global runtime tick
it drove, but `AGENTS.md`, both architecture pages and the `entities` module doc
still listed it as one of the Entity stores.
2026-08-26 15:15:10 +08:00
KangandClaude Opus 5 022cbd9348 chore: move the vendored sources out of the tree into an ignored temp/
The previous commit repointed every one of these dependencies at a pinned
fork revision, so nothing under the old `vendor/` was being compiled any
more. It is moved to `temp/`, which `.gitignore` excludes, and kept only so
the sources can still be read locally. 5704 files and roughly 2.13M lines
leave version control; the working tree drops about 112 MB.

`exclude = ["temp"]` is not needed to build — no dependency points there —
but without it cargo refuses to work inside those directories at all,
reporting "current package believes it's in a workspace when it's not". With
it, `temp/vnc-rs` can still be built and tested on its own, which is how the
24 vnc-rs tests that used to ride along with `cargo test --workspace` can be
run when wanted.

`AGENTS.md` (and `CLAUDE.md`, which links to it) and `CONTRIBUTING.md` are
updated to describe the fork workflow instead of a vendored directory,
because their old wording would send a reader to a path that no longer
exists and imply that editing the sources in place is how patches are made.
It is not: editing `temp/` changes nothing that is compiled and reports no
error. Patching means committing to the fork branch, pushing, and bumping
the revision in the root `Cargo.toml`.

Nothing outside `Cargo.toml` referenced these paths — no build script, no
packaging script, no CI workflow — so this is the whole change.
`cargo check --workspace` passes and no package in the resolved graph
resolves through `temp/`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 10:34:18 +08:00
KangandClaude Opus 5 (1M context) ab8317b33a docs(AGENTS): update remote desktop and VNC helper process details
Expanded the documentation for the `nyaterm-remote-desktop` and added information about the new `nyaterm-vnc-helper` crate. Clarified the roles of each helper process, including their IPC contracts and responsibilities for protocol decoding. Updated guidelines for maintaining protocol decoders and testing practices for remote desktop protocols.

Co-Authored-By: Claude Opus 5 (1M context)
2026-08-20 17:18:21 +08:00
Kang 3385d5ed6e feat(ui): enhance scrollbar behavior and integrate gpui-base for improved theme synchronization
- Updated scrollbar mode to `ScrollbarMode::Hover`, allowing scrollbars to reveal on hover and fade out after idle, improving user discoverability.
- Introduced `NyaScrollbarAxis` for better axis management in scrollable components.
- Adjusted scrollbar overlays to span the entire viewport, ensuring consistent interaction and visibility across different UI elements.
- Implemented `Theme::sync_scrollbar_theme` to ensure the scrollbar theme is correctly applied after direct modifications, maintaining visual consistency.
- Added tests to validate new scrollbar behavior and theme synchronization.
2026-08-19 14:24:53 +08:00
Kang f752004985 feat(ui): implement NyaScrollable for consistent scrollbar behavior across components
- Updated various UI components to utilize NyaScrollable for scroll handling, ensuring all scroll containers render a scrollbar.
- Replaced overflow_scroll() with overflow_scrollbar() in multiple locations to enhance usability and visual consistency.
- Introduced UniformListScrollHandle to share scroll positions across re-renders in specific components, improving user experience during interactions.
- Adjusted scrollbar visibility settings to optimize user discovery and accessibility, particularly in wide tables and complex layouts.
2026-08-19 09:37:00 +08:00
Kang 31c919fa21 docs: update AGENTS.md reference in CLAUDE.md 2026-08-17 00:44:55 +08:00
Kang 3e8134a79d refactor(workspace): normalize composite module roots 2026-08-16 05:11:57 +08:00
Kang d2389db708 docs(architecture): align core and store ownership 2026-08-16 05:05:25 +08:00
Kang 2538bf49d4 feat(ui): migrate common controls to gpui-component 2026-07-30 23:42:29 +08:00
Kang 0f4722335a docs: update GPUI migration status documentation for clarity and accuracy 2026-07-30 10:31:53 +08:00
Kang 130d5c8450 refactor(desktop): consolidate settings ownership 2026-07-29 00:09:03 +08:00
Kang 15bc8a35af refactor(desktop): retire legacy migration inventory 2026-07-28 23:49:46 +08:00
Kang d2cf0bdbdb refactor(settings): group interaction state 2026-07-28 20:21:38 +08:00
Kang 3492575639 refactor(desktop): eliminate wildcard imports 2026-07-28 20:01:21 +08:00
Kang 958cd6fa3d docs: update AGENTS.md for clarity and structure 2026-07-28 18:18:03 +08:00
Kang 5efce4e7cf feat(assets): vendor bundled icons from a pinned manifest
Icons were previously hand-added, so their provenance and licensing lived in
folklore and a mis-painted asset was invisible at runtime: GPUI's `svg()`
reduces a file to an alpha mask, and `img()` keeps its pixels, but nothing
complains when the two are swapped.

Assets are now described by `scripts/icons.manifest` and vendored by
`scripts/sync-icons.sh` from pinned upstream releases, keeping the tree
reproducible and reviewable. `icons/**` stays monochrome and `color/**` full
colour; `scripts/check-icon-references.sh` fails the build when a referenced
asset is missing or painted through the wrong element, and runs in CI.

The lookup tables move out of `formatting/` into a dedicated `features/icons`
module so a ~1000-line brand table is not rebuilt inside a render closure, and
saved connections gain `icon_auto_detect`, which fills in a blank icon from the
detected remote system without ever overwriting a deliberate choice.
2026-07-26 23:21:58 +08:00
Kang bce00fd03a docs: update repository guidelines to reflect migration to native GPUI application and enhance project structure documentation 2026-07-25 15:30:23 +08:00
Kang 33747864b3 docs: add repository guidelines and development instructions 2026-07-25 00:34:36 +08:00
Kang 63ff274888 refactor: migrate to GPUI 2026-07-05 17:26:19 +08:00
Kang 1d8fb85009 docs: update documentation
- Introduced a searchable session quick switcher for easier navigation between saved connections and local sessions.
- Added an auto-start recording feature that begins recording automatically when a session opens.
- Enhanced terminal functionality to serialize text for reconnecting sessions and allow closing of disconnected panes.
- Improved file explorer and clipboard management with new features and optimizations.
- Updated documentation to reflect these new features and enhancements.
2026-06-13 01:36:06 +08:00