Skip to content

Releases: aixtin/nyral

v2.8.30

Choose a tag to compare

@aixtin aixtin released this 02 Nov 18:16

v2.8.30(versionCode 112)

新增

  • 备份/还原:设置 → 数据,一键打包/恢复数据库、偏好与文件(.nyrbak),可选密码加密(AES-GCM),内置版本自适应保险——备份比当前数据结构新时拒绝还原,防降级损坏
  • 抽屉「拍照」:上传面板拍照入口转正,系统相机拍完直接进附件流程,可预览、补文字后发送
  • AI 产物通道:新增 artifact_save / artifact_save_bin 工具,模型的完整成品(代码文件/HTML/SVG/文档/二进制)以卡片交付,点开查看页可保存/分享/复制,同名产物自动升版本

修复

  • 聊天气泡双向越界:恢复两侧头像间走廊宽度约束,AI 与用户气泡各守其界
  • 表情位于消息头部时正文重复渲染
  • 部分设备面板 CPU/网络读数不全(TrafficStats 兜底)
  • 头像裁剪压缩挪至后台线程,防主线程 ANR

SHA256: fd5f7bdbcb5c223fe907efa4030f21620f1cfdfb55e5948876945e4523a6c3e5

v2.8.29

Choose a tag to compare

@aixtin aixtin released this 01 Nov 07:46

v2.8.29 (versionCode 111)

用户可见批次

  • 新增资料页(头像占位、用户配置、标题栏透明跟随滚动)
  • 聊天背景设置(三滑条统一、透明度语义纠正、自定义弹窗合并)
  • 默认主题切为浅灰 DefaultTheme(#F7F7F8)+ 引导页语义色同步
  • 汉堡页布局重排(门禁行、三入口行、字号、分割线)
  • 思考交互按内容长度自适应
  • 头像全局刷新漏刷根因修复
  • 气泡透明度离屏缓存刷新修复
  • 流式块级上屏切点安全化

SSH 与安全

  • SSH 直连打通 + ssh_config_add 工具(跳板机/ED25519)
  • 远程任务停止升级为三层终止(取消 → 进程组收口 → 孤儿清扫),停止后保留现场落盘
  • 泄漏拦截增强(XML 泄漏解析拦截,正常调用零破坏)

签名 APK SHA256: 20ff0149f5df0b723630bdcfa62b328af33cfeaa499de3abb0137692894341e7

v2.8.27

Choose a tag to compare

@aixtin aixtin released this 31 Oct 07:43

v2.8.27 (versionCode 109) — Security hardening / 安全加固

English

Security hardening release. All changes verified on a real device.

  • Fixed command injection in the debug-service text-input endpoint: input text is now transferred encoded and decoded after shell parsing, so shell metacharacters can no longer escape the argument
  • Authentication now runs before the request body is read; request bodies are capped at 32MB, blocking unauthenticated oversized-request memory exhaustion
  • Constant-time token comparison plus a short failure delay to slow brute-force attempts; newly issued debug tokens are stronger (existing tokens remain valid; reset in Settings to rotate)
  • The startup sweep of leftover script processes now verifies the task marker in /proc before killing, so an unrelated reused PID is never terminated
  • Remote (SSH) commands are no longer auto-retried once execution may have started, preventing duplicated side effects; retry only happens when the command verifiably never started
  • strict-mode dangerous-tool confirmations no longer prompt twice for the same call
  • ask-user prompts now time out after 2 minutes and are cancellable, instead of blocking a round forever
  • Chunked file writes abort immediately on a failed chunk and report honestly instead of claiming success
  • Full lint pass: fixed missing English translations and an invalid format string
    SHA256: eb1b953913bc834514b267a63477fadb5d1d2fc0078a14798694de3b428d55c3

中文

安全加固版本,全部变更经真机回归验证。

  • 修复调试服务文本输入端口的命令注入:输入文本改为编码传输、解析后解码,shell 元字符无法再逃逸参数
  • 鉴权提前到读取请求体之前;请求体上限 32MB,堵住未授权超大请求的内存耗尽
  • 令牌常量时间比较 + 失败短延迟拖慢暴力枚举;新签发调试令牌加强(旧令牌仍有效,可在设置中重置换新)
  • 启动时残留脚本进程回收前先核对 /proc 中的任务标记,杜绝进程号复用导致的误杀
  • 远端(SSH)命令一旦可能已开始执行就不再自动重试,避免副作用翻倍;仅在确认未开始执行时才重试
  • strict 档危险工具确认对同一次调用不再弹两次
  • 用户确认等待支持 2 分钟超时与取消,不再无限挂起整轮
  • 分块写文件任一块失败立即中止并如实报错,不再误报成功
  • 完整静态检查通过:补齐缺失英文翻译、修复无效格式串
    SHA256: eb1b953913bc834514b267a63477fadb5d1d2fc0078a14798694de3b428d55c3

v2.8.16

Choose a tag to compare

@aixtin aixtin released this 29 Oct 10:45

v2.8.16(versionCode 99)

修复

  • ANR 看门狗降噪:看门狗改为只记录真正卡死的主线程,剔除整机冻结(系统级休眠 / 调试器暂停)造成的假 ANR——冻结期间仍投递心跳探测,恢复后不再补报;USB 真机息屏 40 秒与 SIGSTOP 10 秒两项压测均 0 假报,崩溃收集不再被系统级噪音淹没。

体验

  • 弹窗背景模糊:所有自绘弹窗展开时对背后聊天内容做高斯模糊,视觉焦点落在弹窗本身。

其他

  • 补齐 2 条缺失英文资源(ma_error_card_title / ma_error_retry),英文界面不再回退中文。

安装包

  • 文件:nyral-v2.8.16.apk
  • SHA256:fb788a8d4b22c9232e2fdb9a8ca255446d051b4ce77fadd030e1ac8cc8b70287
  • 签名证书 SHA-256:51aabbe4bf45f9428db0ead4d35e68d0dff6ec76845dd01caa70b1838977d17e(与历史版本一致,可直接覆盖安装)

机型与兼容性

  • 架构:arm64-v8a(APK 内含 arm64 原生库,32 位或 x86 设备无法安装)
  • 系统:Android 10(API 29)及以上,targetSdk 36
  • 已验证:一加 Ace 3 Pro(ColorOS 真机,免 root 运行)
  • 未验证:折叠屏 / 平板 / x86 模拟器。部分定制 ROM 的激进省电策略可能冻结后台,若出现异常请在电池设置中允许自启动与后台运行

v2.8.14

Choose a tag to compare

@aixtin aixtin released this 26 Oct 16:49

v2.8.14(versionCode 97)

修复

  • 弱机长文回答收尾卡顿(ANR):崩溃日志定位「一调用工具就无响应」的根因——全部正文在收尾瞬间单帧完成解析与布局,长文密集中文的 LineBreaker 重排在弱机上单帧超 ANR 阈值(努比亚 NX741J 实测阻塞 4~74 秒,强杀后感知为闪退)。修复:超长文本块按段落边界切碎成多个 TextView(单视图布局成本封顶,无换行长文兜底硬切);成品文本从 Editable/DynamicLayout 降级为不可变 SpannedString/StaticLayout;收尾显现分帧(每帧最多 2 块、间隔 40ms),视觉为快速逐段淡入。

安装包

  • 文件:nyral-v2.8.14.apk
  • SHA256:b8d8049a93353f4d901d105d794d286617ee5fac736f29c37d49ccfcd6c2e58c
  • 签名证书 SHA-256:51aabbe4bf45f9428db0ead4d35e68d0dff6ec76845dd01caa70b1838977d17e(与历史版本一致,可直接覆盖安装)

系统要求:Android 10 及以上

v2.8.13

Choose a tag to compare

@aixtin aixtin released this 26 Oct 14:27

全 UI 主题化收口 + 稳定性修复。

变更要点

  • 新增自绘主题开关 SwitchView(胶囊轨道随主题主色过渡 + 白色滑块动画),替换全部 5 处原生 Switch——MIUI/HyperOS 会在运行时覆盖原生 Switch 轨道资源,tint 与 drawable 替换均无效
  • Markdown 标题/链接/引用竖线/列表圆点颜色随主题注入,修复深色主题下深蓝标题与黑色圆点不可读
  • 权限/定时任务/模型配置/审计等页面状态色统一收敛至语义色(Ui.OK/Ui.DANGER),消除十余处硬编码绿红
  • 前两轮:TimerTask/Audit 整页主题化、8 处系统弹窗统一替换为自绘圆角弹窗、主页抽屉/语音条/悬浮球硬编码色修复
  • 视频抽帧从 ImageReader 改为 SurfaceTexture + PixelCopy,根治部分 MTK 机型 JNI 层 SIGABRT 崩溃(UNEXPLAINED_EXIT)
  • 识图模型图片内联直发、音频模型音频内联发送(400 自动降级)、超预算 Office 文档 attach_read 直接分块返回文本、表情动图不再被误当视频直发

SHA256

nyral-v2.8.13.apk: 932194c3d5b2fba1dc292bd428d748b42961a9b3f2a1cf0f9444869c56e58c96

v2.8.7

Choose a tag to compare

@aixtin aixtin released this 26 Oct 05:23

v2.8.7

Agent 模式气泡渲染修复(versionCode 70)

  • 用户视频/图片气泡越界、圆角被裁成直角:v2.8.0 起 Agent 模式用户气泡最大宽被误设为全屏宽,忽略了聊天列表左右各 12dp padding。内嵌播放器用显式全屏宽帧并右对齐 → 左缘顶出屏幕;缩略图 ImageSpan 宽于 TextView 可测宽 → 右缘被裁。现用户气泡与媒体 span 统一按「屏宽 − 24dp」收敛。
  • 思考/工具胶囊被压成半个图标:胶囊行 MATCH_PARENT → WRAP_CONTENT,状态壳与历史恢复摘要补 42dp 最小宽度。
  • 流式气泡偶发永久空白:淡出动画被取消(滚动滑出屏幕 detach)时兜底原位上屏成品。
  • 英文资源补齐 98 个缺失字符串,英文界面不再静默回退中文。

校验

  • nyral-v2.8.7.apk(正式签名)
  • SHA256: d732ebffdb2753d010359e8e112905849bbffb3016d39618a0d6e031bcb59a79
  • 系统要求:Android 10 及以上(minSdk 29)

Changes

  • User media bubbles (video/image) overflowed past the left or right screen edge with a squared-off corner: the Agent-mode user bubble max width had been set to the full screen width since v2.8.0, ignoring the chat list's 12 dp horizontal padding. User bubbles and media spans now use screen width − 24 dp.
  • Thinking/tool capsule no longer collapses into half an icon (capsule row MATCH_PARENT → WRAP_CONTENT, 42 dp minimum width on status shell and restored summaries).
  • Cancelled stream fade-out (row detached while scrolling) now shows the final content in place instead of leaving the bubble permanently blank.
  • 98 missing English strings added.

v2.8.6

Choose a tag to compare

@aixtin aixtin released this 24 Oct 14:39

v2.8.6 (versionCode 69)

Update prompt refinement.

Changes

  • New-version dialog gains a third "Never remind for this version" button: tapping it persists the ignored version and skips the popup on later auto checks (manual checks show a notice instead); new tags still prompt as usual.
  • Removes a stray NUL byte in ToolExecutor's M4A brand comparison so the file is no longer flagged as binary.

Artifact

  • nyral-v2.8.6.apk
  • SHA256: 31cdfc27380c8ea9517863a3b1ca7f646b86960bf07c6991272cfcfca81af9c2

v2.8.5

Choose a tag to compare

@aixtin aixtin released this 24 Oct 13:37

v2.8.5 (versionCode 68)

Patch release - ApiConfig ANR fix.

Changes

  • ApiConfig.providers() now serves the provider list from a @Volatile in-memory cache, eliminating repeated synchronous AndroidKeyStore AES/GCM decryption on the main thread during onResume (a single decrypt could previously stall the UI thread up to ~60 s, as observed in PJX110 ANR reports).
  • The cache is invalidated on save/add/delete, so writes still take effect immediately.
  • Changelog: v2.8.3 folded into the <details> section; README folding formatting fixes included.

Artifact

  • nyral-v2.8.5.apk
  • SHA256: 4d853d0d0475b4ce350eaba83d192d22ae1a31f2852fa7772a958bbd0bf906fc

v2.8.4

Choose a tag to compare

@aixtin aixtin released this 24 Oct 13:00

v2.8.4 (versionCode 67)

Patch release - crash-locality precision.

Changes

  • Recent-log timestamps now include milliseconds (HH:mm:ss.SSS); old-format lines are still parsed.
  • ANR watchdog probes liveness before dumping: after a stall is flagged, a heartbeat is posted and given ~600 ms to run, so dumps distinguish still blocked (live stack captured) from recovered before dump (late report).
  • ANR files gain a captured_while_blocked field marking capture quality.
  • Removed stale collaboration statement mentioning an AI assistant name.

Artifact

  • nyral-v2.8.4.apk
  • SHA256: dd0a6bb7f9fe398b12458f78797313a785a6dd4d199d6211a75641ac301a0373