merge: integrate completion isolation with current main [skip ci]
Preserve the current main updates together with active SSH/WSL completion ownership and native PowerShell predictions. Renumber the completion ADR after the existing font ownership decision.
This commit is contained in:
commit
a02cf48fee
107 files changed
+3922
-753
No files matched your search
@@ -478,7 +478,63 @@ settings files.
|
||||
measured query latency, completeness and sustained allocation evidence. Do not
|
||||
restore eager full-tree indexing to improve a synthetic latency number.
|
||||
|
||||
## ADR-0014 — Native font ownership and terminal resource reclamation
|
||||
## ADR-0014 — Parallel release validation with one product build graph
|
||||
|
||||
- **Date:** 2026-09-14
|
||||
- **Context:** The 1.7.0 Windows release job took 41m28s despite a full dependency
|
||||
cache hit. Its logs show three application test compilations (4m44s, 9m16s and
|
||||
4m07s), a 15m08s release build, and 4m16s of additional dependency compilation
|
||||
during packaging. The user requested a slowest-job target of ten minutes.
|
||||
- **Decision:** Run the complete Rust workspace with the product interaction
|
||||
feature enabled in one unfiltered invocation. Run native tests independently
|
||||
from package construction; asset aggregation depends on both. Each native
|
||||
platform still runs the complete Python helper and harness suites. Separate
|
||||
test and release cache keys prevent concurrent jobs from replacing one another's
|
||||
compiled workload. Dependency archives and Git objects are shared within each
|
||||
platform; each workload saves only the profiles it uses (native tests also keep
|
||||
release-check metadata). A fallback
|
||||
reads existing combined caches during migration. Cargo still validates source,
|
||||
profile and feature fingerprints before reuse. Each source revision saves an
|
||||
immutable entry while restoring compatible earlier revisions; a partially built
|
||||
cache from a failed revision cannot prevent later successful cache updates.
|
||||
- **Scheduling:** Stable releases call the same complete four-platform native
|
||||
workflow used for contributions, including architecture, translation allocation
|
||||
contracts and the release-workspace check. Release branch pushes omit a duplicate
|
||||
automatic invocation; the release aggregation still requires the called suite.
|
||||
- **Test profile:** An explicit CI-only profile removes developer-preview
|
||||
optimization and debug information from test compilation, including named
|
||||
dependency overrides. It retains debug assertions and overflow checks. The
|
||||
native suite also checks the actual product feature configuration, since GPUI
|
||||
test support changes dependency features. Release optimization is unaffected.
|
||||
- **Product compilation:** The application keeps O3 and Thin LTO and uses 16
|
||||
codegen units to parallelize its large translation unit. Other package settings
|
||||
retain their existing values. Both Windows packagers call one explicit builder
|
||||
for the product and its packaged hook, preserving the same feature graph.
|
||||
Packaging still invokes Cargo and validates source freshness and binary identity.
|
||||
- **Contract clarification:** The old packaging test required the literal
|
||||
`--workspace --exclude nebula`, rejecting a valid explicit selection of the two
|
||||
shipped binaries. It now verifies the actual selected packages, binaries and
|
||||
product feature, plus failure propagation and restoration of the caller's target.
|
||||
No test filtering, freshness bypass, size-budget increase or dependency change
|
||||
is part of this decision.
|
||||
- **Validation:** The release pipeline runs native tests, packaging fixtures,
|
||||
package-size/identity checks and installed or mounted conformance on all four
|
||||
platforms. Actual job timings determine whether the target is met; cache input
|
||||
changes and first compilation must be reported separately. A configured timeout
|
||||
or parallel scheduling alone is not evidence of a ten-minute successful build.
|
||||
- **Windows host privileges:** The first hosted run exposed administrator-token
|
||||
dependence in ordinary-window persistence fixtures and runtime discovery.
|
||||
Persistence tests now explicitly select ordinary-window state while retaining
|
||||
privileged isolation tests. Native conformance launches under a restricted copy
|
||||
of the runner's own token, verifies that elevation was removed and preserves
|
||||
the desktop, environment and child exit status. It does not weaken the product's
|
||||
administrator isolation or create a separate user account. Native launch tests
|
||||
cover elevation, literal argument passing and successful/failed child exit.
|
||||
- **Revisit condition:** Retain only changes whose complete CI run and package
|
||||
checks pass. Reconsider codegen partitioning if artifact size or runtime
|
||||
measurements regress, and remove redundant caches if restore/save cost grows.
|
||||
|
||||
## ADR-0015 — Native font ownership and terminal resource reclamation
|
||||
|
||||
- **Status:** Existing local fixes selected for commit at the maintainer's request,
|
||||
2026-09-15. This records ownership contracts, not a release or process-memory claim.
|
||||
@@ -516,7 +572,7 @@ settings files.
|
||||
provide equivalent process identity and resource-lifetime guarantees.
|
||||
|
||||
|
||||
## ADR-0015 — Completion ownership follows the active connection
|
||||
## ADR-0016 — Completion ownership follows the active connection
|
||||
|
||||
- **Date:** 2026-09-15
|
||||
- **Context:** Launch-time Local/WSL/SSH pools do not follow a typed SSH/WSL
|
||||
|
||||
@@ -105,6 +105,30 @@ Files successfully loaded through `require` are added to the live-reload watch
|
||||
list. Extra local files can be registered with
|
||||
`pebrel.add_to_config_reload_watch_list(path)`.
|
||||
|
||||
## Terminal Selection Colors (TOML Compatibility)
|
||||
|
||||
For a legacy `pebrel.toml` configuration, the GPUI terminal accepts explicit
|
||||
selection foreground and background colors in `#rrggbb` or `0xrrggbb` form:
|
||||
|
||||
```toml
|
||||
[colors.selection]
|
||||
foreground = "#102030"
|
||||
background = "#e5e9f0"
|
||||
```
|
||||
|
||||
Previously the GPUI adapter loaded the selection background but ignored the
|
||||
foreground, which could leave selected text unreadable against a custom
|
||||
background. It also cleared a custom foreground when applying a theme such as
|
||||
Paper that does not declare selection colors. Both values now survive loading
|
||||
and themes that do not override them. A theme that explicitly declares selection
|
||||
colors, such as Nord, retains its existing precedence.
|
||||
|
||||
Missing or invalid foreground colors keep the existing fallback. Relative
|
||||
`CellForeground` / `CellBackground` values are not added by this change. The
|
||||
regression tests cover parsing and theme precedence; this does not change the
|
||||
answer reader's selection overlay, formula selection layout, or the default
|
||||
selection contrast. No new setting, dependency, or per-frame work is introduced.
|
||||
|
||||
## Platform Values
|
||||
|
||||
The module exposes stable runtime paths and platform data:
|
||||
|
||||
@@ -2,6 +2,43 @@
|
||||
|
||||
这是一份给 Nebula Markdown 阅读器使用的数学渲染截图样例。本文只把成对的 `$...$` 和 `$$...$$` 识别为数学公式;裸露 TeX 命令仍然按普通 Markdown 文本显示。
|
||||
|
||||
## 正文选区可读性
|
||||
|
||||
回答阅读器与 Markdown 文本组件的选区绘制在文字上方。之前主题适配直接复用
|
||||
列表选中背景:在 MintLight、Nord 等主题中,这个背景不透明,会遮住已经绘制的
|
||||
字形。主题适配现在保留原色相,并遵循 gpui-component 对文字选区的 0.3 不透明度(alpha)
|
||||
上限;更透明的主题保持原值。列表、侧栏的实色选中背景不受影响。
|
||||
|
||||
验证时,在 MintLight 和 Nord 中分别拖选下面这句正文,检查选中后文字仍可读、
|
||||
布局不移动,复制得到的内容与所选文字一致;再缩窄窗口检查换行后的选择。
|
||||
|
||||
alpha beta gamma delta
|
||||
|
||||
自动回归覆盖全部内置主题的选区颜色和透明度、主题 token 同步,以及真实
|
||||
TextView 控件在深浅主题与宽窄布局下的鼠标拖选、键盘复制。另在 Windows 200%
|
||||
缩放下对 MintLight 宽布局、Nord 窄布局做了原生窗口对照,修复前后的截图仅裁剪
|
||||
标题栏与留白,未重绘内容:
|
||||
|
||||

|
||||
|
||||
原生预览可通过默认忽略的 `native_reader_selection_preview` 测试复核:先将
|
||||
`PEBREL_SELECTION_QA_DIR` 设置为新的绝对输出目录,按需设置
|
||||
`PEBREL_SELECTION_QA_THEME`(默认 MintLight)和 `PEBREL_SELECTION_QA_WIDTH`
|
||||
(默认 480),然后运行:
|
||||
|
||||
```text
|
||||
cargo test --locked -p nebula --bin pebrel --features gpui-test-support native_reader_selection_preview -- --ignored --nocapture --test-threads=1
|
||||
```
|
||||
|
||||
测试只对自己的原生 TextView 窗口分发选择事件,不启动终端或 AI 会话、不改系统
|
||||
剪贴板。输出目录出现 `ready.json` 后可截图,写入 `capture-complete` 文件即可
|
||||
结束预览;没有信号时最多等待约一分钟后退出。
|
||||
|
||||
虚拟窗口测试不等同于完整产品验收;Linux/macOS 原生窗口、其他缩放和真实答案
|
||||
内容仍需对应平台检查。本修复不改变
|
||||
LaTeX 解析、公式选择时的源码回退、剪贴板格式或终端网格的配色;没有新增依赖
|
||||
或逐帧计算,颜色只在主题应用时适配。
|
||||
|
||||
## 1. 行内公式
|
||||
|
||||
行内公式应该和中文、英文正常混排:圆的面积是 $S=\pi r^2$,勾股定理是 $a^2+b^2=c^2$,欧拉恒等式是 $e^{i\pi}+1=0$。这里再放一个带上下标的表达式 $x_{i+1}^2+y_{j-1}^2$,检查基线、间距和换行。
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
# Pebrel 1.8.0
|
||||
|
||||
## English
|
||||
|
||||
### Added
|
||||
|
||||
- Added confirmation before restoring default settings, with Cancel, Escape and backdrop dismissal available before any preferences change. Contributed by [@WilliamWang1721](https://github.com/WilliamWang1721) in [#115](https://github.com/Kuddev/pebrel/pull/115).
|
||||
- Added Windows login-startup and silent-start switches in Settings → Advanced → Session lifecycle. Silent startup enables the tray so the window can be reopened; an explicit directory launch still opens a visible window. Contributed by [@WilliamWang1721](https://github.com/WilliamWang1721) in [#117](https://github.com/Kuddev/pebrel/pull/117).
|
||||
- Added an independent interface text-size control, adjustable from 10 to 24 px without changing terminal text size. Contributed by [@WilliamWang1721](https://github.com/WilliamWang1721) in [#127](https://github.com/Kuddev/pebrel/pull/127).
|
||||
- Added a separate terminal font fallback list for Chinese and other full-width characters. Font choices apply on Enter or leaving the field; the English and Chinese fields both default to bundled Maple Mono NF CN. Contributed by [@WilliamWang1721](https://github.com/WilliamWang1721) in [#127](https://github.com/Kuddev/pebrel/pull/127).
|
||||
- Added “Focus follows mouse” in Settings → Interaction, off by default, and “Dim inactive panes” in Settings → Appearance, on by default. Both preferences take effect immediately.
|
||||
- Added right-click actions to the Shell launcher for choosing the default Shell and, on Windows, opening the selected Shell inside a new administrator Pebrel window.
|
||||
- Added Connect, Edit, and Delete to SSH launcher context menus. Delete uses the existing confirmation and undo flow.
|
||||
- Added Trae CLI recognition and its tab icon, plus a dedicated Oh My Pi icon.
|
||||
- Added CodeBuddy CLI recognition and its color tab icon, including the `codebuddy`, `cbc`, `codebuddy-code` and `codebuddy-lowmem` commands. Prewarm commands and old welcome text alone do not establish a foreground AI session.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed font candidates being clipped near the window edge or covering their input after settings-page scrolling. The list opens above the field when needed, and both terminal-font fields align and display the current font.
|
||||
- Fixed a bare `pebrel` launch opening a new terminal in the wrong directory. The inherited launch directory is preserved, including when handing the request to an existing Windows instance.
|
||||
- Fixed restored WSL panes losing their saved guest directory during startup.
|
||||
- Fixed queued AI resume commands and session identities being lost during Shell initialization. Compact Codex resume screens are recognized without another AI message, and exiting the CLI clears the foreground identity.
|
||||
- Fixed long WSL directory titles overlapping distribution labels in the sidebar and top tabs.
|
||||
- Fixed quiet terminals retaining an intermediate startup size. The final viewport size reaches the terminal even when no more output arrives.
|
||||
- Fixed Windows terminal focus consuming `Alt+F4` and `Alt+Space`. `Alt+F4` now uses the normal window-close flow, and `Alt+Space`, followed by `N`, uses the system menu to minimize the window.
|
||||
- Fixed the top Settings tab disappearing when switching to another tab. It now remains available until explicitly closed, including when tabs overflow or the tab layout changes.
|
||||
- Fixed `Alt+1–9` and `Ctrl+1–9` tab shortcuts losing priority to terminal input. They now work while a terminal or CLI has focus and respect custom shortcut changes without restarting.
|
||||
- Fixed WSL filename search failing when the directory path contains spaces or shell punctuation. Cancelling a search stops its own directory scan.
|
||||
- Aligned macOS native window controls with the sidebar and Settings buttons, and preserved their reserved space in the top tab layout. Window controls follow the system appearance. Contributed by [@WilliamWang1721](https://github.com/WilliamWang1721) in [#114](https://github.com/Kuddev/pebrel/pull/114).
|
||||
- Fixed the Git drawer retaining Chinese labels when the application resolves to English. Controls, history timestamps and application notices follow the selected language; switching languages preserves the commit draft and text selection. Contributed by [@gao-jian-bin](https://github.com/gao-jian-bin) in [#118](https://github.com/Kuddev/pebrel/pull/118).
|
||||
- Fixed explicitly configured terminal selection text colors being ignored. Themes without their own selection foreground preserve that setting; themes with an explicit foreground retain their precedence. Contributed by [@Aschenbath](https://github.com/Aschenbath) in [#125](https://github.com/Kuddev/pebrel/pull/125).
|
||||
- Fixed selected text disappearing behind opaque highlights in the answer reader and other selectable text views. Text remains visible while list and sidebar selection backgrounds retain their existing appearance. Contributed by [@Aschenbath](https://github.com/Aschenbath) in [#126](https://github.com/Kuddev/pebrel/pull/126).
|
||||
|
||||
### Improved
|
||||
|
||||
- Reduced file browsing and filename-search memory use by starting recursive searches only when a query is entered, reusing a bounded cache and streaming paths beyond that cache. Repeated panel use releases obsolete results and cancels superseded searches. Case, whole-word and regular-expression options remain available, with visible feedback for incomplete searches and errors.
|
||||
- Reduced background-image memory use with bounded image loading and reuse while resizing the window. Replacing an image releases the previous resources; extended backgrounds retain their fit, alignment and text readability.
|
||||
- Replaced the low-resolution Claude Code icon with artwork exported from SVG at 1024 pixels, and prepared Agent icons at their display size for smoother tab edges.
|
||||
- Restored monospace lettering for terminal directory labels, sidebar headers, tabs and split-pane titles while retaining the independent interface text-size setting.
|
||||
|
||||
Windows packages include a Pebrel installer and portable ZIP. Linux x64 packages and macOS Apple Silicon/Intel DMGs retain their Preview designation. macOS requires version 14 or later. Molecular structure rendering remains disabled.
|
||||
|
||||
## 中文
|
||||
|
||||
### 新增
|
||||
|
||||
- 新增:恢复默认设置前的确认弹窗,可通过“取消”、Esc 或点击遮罩退出,确认前不会修改偏好。由 [@WilliamWang1721](https://github.com/WilliamWang1721) 在 [#115](https://github.com/Kuddev/pebrel/pull/115) 中贡献。
|
||||
- 新增:Windows“设置 → 高级 → 会话生命周期”中的登录自启动和静默启动开关。静默启动会启用托盘以便重新打开窗口;显式打开目录时仍显示窗口。由 [@WilliamWang1721](https://github.com/WilliamWang1721) 在 [#117](https://github.com/Kuddev/pebrel/pull/117) 中贡献。
|
||||
- 新增:独立界面字号设置,可在 10–24 px 间调整,不影响终端文字字号。由 [@WilliamWang1721](https://github.com/WilliamWang1721) 在 [#127](https://github.com/Kuddev/pebrel/pull/127) 中贡献。
|
||||
- 新增:中文及其他全宽字符的独立终端字体回退列表。按回车或离开输入框后生效,中英文两项默认均采用内置 Maple Mono NF CN。由 [@WilliamWang1721](https://github.com/WilliamWang1721) 在 [#127](https://github.com/Kuddev/pebrel/pull/127) 中贡献。
|
||||
- 新增:在“设置 → 交互”中加入“焦点跟随鼠标”,默认关闭;在“设置 → 外观”中加入“调暗非活动窗格”,默认开启。两项设置均即时生效。
|
||||
- 新增:Shell 启动菜单新增右键操作,可设为默认 Shell;Windows 下还可在新的管理员 Pebrel 窗口内打开所选 Shell。
|
||||
- 新增:SSH 启动菜单新增“连接、编辑、删除”右键操作;删除沿用已有的确认与撤销流程。
|
||||
- 新增:Trae CLI 识别与标签图标,并为 Oh My Pi 加入独立图标。
|
||||
- 新增:CodeBuddy CLI 识别与彩色标签图标,支持 `codebuddy`、`cbc`、`codebuddy-code`、`codebuddy-lowmem` 命令;预热命令和单独的历史欢迎文字不会被认定为前台 AI 会话。
|
||||
|
||||
### 修复
|
||||
|
||||
- 修复:字体候选列表在窗口边缘被裁切、或设置页滚动后遮住输入框的问题。空间不足时向上展开,中英文终端字体输入框保持对齐并显示当前字体。
|
||||
- 修复:不带目录参数运行 `pebrel` 时,新终端未继承实际启动目录的问题;交接给已有 Windows 实例时也会保留目录。
|
||||
- 修复:WSL 窗格恢复时,在启动过程中丢失已保存的来宾目录的问题。
|
||||
- 修复:Shell 初始化期间丢失排队的 AI 恢复命令和会话身份的问题。可识别 Codex 精简恢复界面,无需再发送 AI 消息;CLI 退出后清除前台身份。
|
||||
- 修复:WSL 长目录标题与发行版名称在侧栏、顶部标签中互相覆盖的问题。
|
||||
- 修复:安静终端停留在启动中间尺寸的问题;即使没有新的输出,也会收到布局稳定后的最终视口尺寸。
|
||||
- 修复:Windows 终端获得焦点时吞掉 `Alt+F4` 和 `Alt+Space` 的问题。`Alt+F4` 现在进入正常窗口关闭流程,`Alt+Space` 后按 `N` 可通过系统菜单最小化窗口。
|
||||
- 修复:顶部设置标签在切换到其他标签后消失的问题。现在只有主动关闭才会移除,标签溢出或切换标签布局时也会保留。
|
||||
- 修复:`Alt+1–9` 和 `Ctrl+1–9` 标签快捷键优先级低于终端输入的问题。终端或 CLI 获得焦点时仍可切换标签,自定义快捷键的修改也无需重启即可生效。
|
||||
- 修复:目录路径含空格或 Shell 特殊符号时 WSL 文件名搜索失败的问题;取消搜索会停止该次目录扫描。
|
||||
- 修复:对齐 macOS 原生窗口按钮与侧栏、设置按钮,并在顶部标签布局中保留窗口按钮所需空间;窗口按钮外观跟随系统。由 [@WilliamWang1721](https://github.com/WilliamWang1721) 在 [#114](https://github.com/Kuddev/pebrel/pull/114) 中贡献。
|
||||
- 修复:应用解析为英文时 Git 面板仍保留中文标签的问题。控件、历史时间和应用提示跟随所选语言,切换语言时保留提交草稿和文字选区。由 [@gao-jian-bin](https://github.com/gao-jian-bin) 在 [#118](https://github.com/Kuddev/pebrel/pull/118) 中贡献。
|
||||
- 修复:终端忽略用户明确设置的选中文字颜色的问题。未指定选中文字颜色的主题会保留该设置;已明确指定的主题仍保持自身优先级。由 [@Aschenbath](https://github.com/Aschenbath) 在 [#125](https://github.com/Kuddev/pebrel/pull/125) 中贡献。
|
||||
- 修复:回答阅读器等文本视图中,选中文字被不透明高亮遮住的问题。文字保持可读,列表与侧栏的选中背景保留原有外观。由 [@Aschenbath](https://github.com/Aschenbath) 在 [#126](https://github.com/Kuddev/pebrel/pull/126) 中贡献。
|
||||
|
||||
### 改进
|
||||
|
||||
- 改进:降低文件浏览与文件名搜索的内存占用:输入关键词后才开始递归搜索,复用有容量上限的缓存,并流式查找缓存之外的路径。重复使用文件面板时释放过期结果、取消已被替代的搜索;保留大小写、整词和正则选项,并明确提示搜索未覆盖全部文件或发生错误。
|
||||
- 改进:降低背景图内存占用,限制图片加载成本,并在调整窗口大小时复用图像资源;替换背景图会释放旧资源,扩展背景仍保持原有的适配、对齐和文字可读性。
|
||||
- 改进:将 Claude Code 的低分辨率图标替换为从 SVG 导出的 1024 像素图像,并按显示尺寸处理 Agent 图标,使标签图标边缘更平滑。
|
||||
- 改进:终端目录标签、侧栏标题、标签页及分屏标题恢复等宽字体,同时继续使用独立的界面字号设置。
|
||||
|
||||
Windows 提供 Pebrel 安装器和 ZIP 便携包;Linux x64 包以及 macOS Apple Silicon/Intel DMG 继续标记为 Preview。macOS 最低运行版本为 14。分子结构渲染仍处于禁用状态。
|
||||
|
||||
## Contributors
|
||||
|
||||
<a href="https://github.com/WilliamWang1721"><img src="https://github.com/WilliamWang1721.png?size=96" width="64" height="64" alt="@WilliamWang1721 avatar"></a><a href="https://github.com/gao-jian-bin"><img src="https://github.com/gao-jian-bin.png?size=96" width="64" height="64" alt="@gao-jian-bin avatar"></a><a href="https://github.com/Aschenbath"><img src="https://github.com/Aschenbath.png?size=96" width="64" height="64" alt="@Aschenbath avatar"></a>
|
||||
|
||||
**[@WilliamWang1721](https://github.com/WilliamWang1721)** - Improved macOS window controls, reset confirmation, Windows startup settings and independent interface/terminal font controls. / 改进 macOS 窗口按钮、恢复默认确认、Windows 启动设置,以及界面字号和终端字体设置。([#114](https://github.com/Kuddev/pebrel/pull/114)、[#115](https://github.com/Kuddev/pebrel/pull/115)、[#117](https://github.com/Kuddev/pebrel/pull/117)、[#127](https://github.com/Kuddev/pebrel/pull/127))
|
||||
|
||||
**[@gao-jian-bin](https://github.com/gao-jian-bin)** - Made Git drawer language follow application preferences while preserving editing state. / 让 Git 面板语言跟随应用设置,同时保留编辑状态。([#118](https://github.com/Kuddev/pebrel/pull/118))
|
||||
|
||||
**[@Aschenbath](https://github.com/Aschenbath)** - Preserved terminal selection foreground colors and readable text selections in the answer reader. / 修正终端选中文字颜色,并让回答阅读器的文字选区保持可读。([#125](https://github.com/Kuddev/pebrel/pull/125)、[#126](https://github.com/Kuddev/pebrel/pull/126))
|
||||
|
||||
|
||||
---
|
||||
|
||||
**SHA256**
|
||||
|
||||
- `Pebrel-v1.8.0-windows-x64.zip`: `PENDING FINAL BUILD`
|
||||
- `Pebrel-v1.8.0-windows-x64-setup.exe`: `PENDING FINAL BUILD`
|
||||
- `Pebrel-v1.8.0-linux-x64-preview.AppImage`: `PENDING FINAL BUILD`
|
||||
- `Pebrel-v1.8.0-linux-x64-preview.deb`: `PENDING FINAL BUILD`
|
||||
- `Pebrel-v1.8.0-linux-x64-preview.tar.gz`: `PENDING FINAL BUILD`
|
||||
- `Pebrel-v1.8.0-macos-arm64-preview.dmg`: `PENDING FINAL BUILD`
|
||||
- `Pebrel-v1.8.0-macos-x64-preview.dmg`: `PENDING FINAL BUILD`
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
Reference in new issue
Block a user