## 1.5.43 (2026-08-27) - 统一 Git 提交与发布记录规范:使用简洁、准确的中文,通常按小功能节点分别提交。 - Bug 修复通常只描述修复的功能点和结果,不展开代码缺陷细节。 ## 1.5.42 (2026-08-27) - Added authenticated `log_info`, `log_tail`, `log_search`, `log_enable`, and `log_disable` commands and capability definitions. - Added dedicated transit endpoint calls, paths containing spaces, keyword/regex context search, recent/full scan selection, and structured error handling. - Log excerpts remain read-only and are analyzed by the Skill/model; the Skill does not execute server commands or write customer files. ## 1.5.37 (2026-08-14) ### Public mirror documentation - Updated Skill and README maintenance URLs to the private Gitea repository and the public mirror. - Clarified that the public repository is a manually approved, no-history snapshot for downloads; development and Skill synchronization use the private repository. ## 1.5.36 (2026-08-14) ### Public mirror safety - Removed the hard-coded `"123"` fallback for the Agent update administrator token. - `agent_update` now fails locally with a clear configuration error when neither `ORACLE_JUMP_UPGRADE_ADMIN_TOKEN` nor `upgrade_admin_token` is configured; it does not issue an update request without a token. ## 1.5.35 (2026-08-14) ### HTTPS transit endpoint - Changed the default Skill transit endpoint from `http://bos.henlo.net:6357` to `https://ts.henlo.net`. - Updated runtime defaults, configuration templates, examples, direct HTTP examples, and capability metadata to use the HTTPS domain. - Existing runtime tokens and selected clients are preserved when only `transit_url` is migrated. ## 1.5.34 (2026-07-21) ### AWR export function recovery - Updated archived `SYS.HENLO_AWR_EXPORT` to v1.1: ignore null report rows before `DBMS_LOB.WRITEAPPEND` and preserve row boundaries with an explicit newline. - Fixes production `ORA-06502` raised by the v1.0 function when Oracle's AWR report stream contains an empty row. - The Skill continues to return the SQL for manual DBA execution only and never runs DDL. ## 1.5.33 (2026-07-21) ### AWR DBA preparation - When `awr_status` reports `permission_required`, the Skill now resolves the target Agent's actual Oracle schema and returns the archived `HENLO_AWR_EXPORT` deployment/grant SQL for manual DBA execution. - The SQL is never executed by the Skill and is only shown after reminding the operator to confirm Diagnostics Pack authorization. - Added the explicit `DBA_HIST_SNAPSHOT` read grant required by Agent readiness checks; unresolved schemas never produce SQL containing the `` placeholder. ## 1.5.32 (2026-07-21) ### AWR report delivery - Added `awr_status`, `awr_list`, and `awr_download` commands using authenticated transit-server APIs. - AWR HTML is downloaded byte-for-byte from the Agent and is never rendered locally; downloads are limited to 50 MB and use strict `yyyyMMdd` validation. - Documented the mandatory Diagnostics Pack confirmation and Agent `awr.enabled` / `awr.license_confirmed` gates. ## 1.5.31 (2026-07-21) ### Client authorization refresh - `clients` now replaces the local client cache with the transit server's current authorization snapshot, so newly authorized clients appear and revoked clients disappear without re-entering `secretKey`. - Client refresh continues to use only the existing transit-server access token. ## 1.5.29 (2026-07-15) ### Inspection SYS deployment - When inspection preflight fails, the Skill reads the target Agent's configured Oracle schema through the `version` action. - SYS function SQL replaces `` with the actual customer schema before it is shown to the user. - If the schema cannot be determined or is invalid, the Skill stops with a configuration error and never emits placeholder authorization SQL. - Updated `HENLO_ORA_MONITOR` to the complete v3.0 CLOB JSON contract used by Agent inspection actions. ## 1.5.28 (2026-07-13) ### Inspection preflight - Restored mandatory `sys_function_check` before `inspection_report` creates a new report. - Missing SYS/current-schema monitor functions now stop collection and return the complete deployment and grant SQL bundle. - Reading an existing latest report no longer requires SYS preflight; `inspection_latest --refresh` still does. ## 1.5.26 (2026-07-13) ### Documentation - Documented the Skill OSS release path and planned `skill_update` check/download/confirm workflow. - Documented preservation of local `config.json`, `outputs/` and logs during updates. - Marked the runtime `skill_update` command as not implemented yet. --- ## 1.5.25 (2026-07-13) ### HTML archive delivery - Retry short-lived 404 responses while transit-server asynchronously commits the report archive. - Return a readable error after retries instead of a traceback. --- ## 1.5.24 (2026-07-13) ### HTML download - Fixed HTML URL construction when the local config does not contain a duplicate `transit_url` field. - Network download failures now return a readable Skill error instead of a Python traceback. --- ## 1.5.23 (2026-07-13) ### Inspection preflight - Fixed the missing `check_inspection_sys_functions` implementation. - Inspection generation now stops before Agent collection when the SYS monitor function is unavailable and returns the complete grant SQL bundle. - Protected HTML URLs must be downloaded through Skill authentication. --- ## 1.5.22 (2026-07-13) ### 发布规范 - 完善 Skill 版本号、CHANGELOG、项目 AGENTS.md 发布记录和实际提交的一致性要求。 --- ## 1.5.21 (2026-07-13) ### SYS function deployment - Added `sys_functions [--json]` to generate the complete SYS function deployment bundle for Agent installation. - The command automatically includes every `.sql` file under `references/sys-functions/` and substitutes `` with the customer Agent schema. - Documented the rule that every future SYS function must be archived in that directory. --- ## 1.5.20 (2026-07-10) ### 功能 - 文档补充 Agent 版本查询命令: ersion agent 、--all、--json。 - 明确在线 Agent 直接确认版本,离线客户返回最后心跳版本和离线状态。 - 补充自然语言触发示例:查询所有客户的 Agent 版本号、查询指定客户版本号。 --- ## 1.5.20 (2026-07-10) ### 功能 - 巡检 HTML/Markdown 支持服务器 IP、操作系统版本、启动时间、运行时长、关键进程和 TCP 连接统计。 - 巡检报告支持 Oracle ACTIVE/总会话数、Buffer Cache 与 Library Cache 命中率,并区分真实零值和采集失败。 - 修正慢 SQL 列映射、表空间容量/自动扩展上限映射和高内存事件误标为 OOM 的报告问题。 - AWR 明确列入未来开发计划,当前版本不采集、不生成 AWR 报告。 --- ## 1.5.19 (2026-07-10) ### 功能 - 新版服务器巡检命令成功返回后默认生成固定格式 HTML 文件,无需再显式传入 `--html`。 - `inspection_report`、`inspection_latest`、`inspection_get` 增加 `--markdown [path]`(别名 `--md`),可在生成 HTML 的同时导出固定格式 Markdown 文件。 - `--json` 输出增加 `artifacts` 字段,返回已生成的 HTML/Markdown 文件路径,同时保持标准 JSON 输出。 --- ## 1.5.18 (2026-07-10) ### 功能 - 移除旧版 `checkup` 对外命令能力,服务器体检统一走新版 `inspection_report` / `inspection_latest` / `inspection_get`。 - `inspection_report`、`inspection_latest`、`inspection_get` 增加 `--html [path]`,按固定 HTML 模板导出巡检报告;不传路径时写入 `outputs/`。 - `config.json` 读取兼容 UTF-8 BOM。 --- ## 1.5.17 (2026-07-09) ### 功能 - 增加 `inspection_report [clientCode] [--json]` 命令,通过 transit-server 生成服务器巡检报告并归档。 - 增加 `inspection_latest [clientCode] [--refresh] [--json]` 命令,读取最近归档巡检报告;加 `--refresh` 时重新生成后返回。 - 增加 `inspection_get [--json]` 命令,按 `TS_INSPECTION_REPORT.ID` 读取历史巡检报告。 --- ## 1.5.16 (2026-07-08) ### 文档 - 记录 skill Git 源地址:`http://124.220.155.147:3000/qiangayi/oracle-jump-query`。 - 明确后续更新 skill 时以该 Git 地址为准,已安装目录只作为运行和验证目录。 --- ## 1.5.15 (2026-07-08) ### 文档 - 补充 BOS 提交流程规则:生成提交 SQL 或说明提交流程时,如果已知 `userId`,调用 `AD_TABLE.PROC_SUBMIT` 前需要先更新主单据修改人和修改时间,再调用提交存储过程。 - 强调修改人、修改时间字段名必须先通过 `AD_COLUMN` 或表结构确认,不要凭经验硬写字段名。 --- ## 1.5.14 (2026-07-08) ### 文档 - 补充 `AD_TABLE` 表单事件过程规则:`HAS_TRIG_BD='Y'` 时 `TRIG_BD` 为删除前触发过程(bd),`HAS_TRIG_AC='Y'` 时 `TRIG_AC` 为新增后触发过程(ac),`HAS_TRIG_AM='Y'` 时 `TRIG_AM` 为修改后触发过程(am)。 - 更新 BOS 元数据查询模板,分析业务表时同时查看 `PROC_SUBMIT` 和 `TRIG_BD/TRIG_AC/TRIG_AM`。 --- ## 1.5.13 (2026-07-06) ### 功能 - 在 `SKILL.md`/README/命令说明中补充 `agent_update [clientCode] [timeout]` 能力,便于其他 Agent 通过 `capabilities` 发现并触发客户 Agent 更新。 - skill 默认中转机统一为 `http://bos.henlo.net:6357`,不再使用旧 IP 或 `zjhenlo.henlo.net`。 --- ## 1.5.12 (2026-07-06) ### 功能 - 增加 `agent_update [clientCode] [timeout]` 命令,通过中转机触发 Agent 自动更新;升级包下载地址由中转机返回,按 OSS `latest.json` 方案下载。 - 默认中转机地址调整为 `http://bos.henlo.net:6357`。 --- ## 1.5.11 (2026-07-02) ### 文档 - 增加商品明细常见字段说明:`M_PRODUCT_ID` 对应款号,`M_PRODUCTALIAS_ID` 对应条码,`M_ATTRIBUTESETINSTANCE_ID` 对应色码属性 ASI。 - 增加 ASI 色码属性规则:`M_ATTRIBUTESETINSTANCE.VALUE1/VALUE1_CODE/VALUE1_ID` 对应颜色,关联 `M_COLOR.ID`;`VALUE2/VALUE2_CODE/VALUE2_ID` 对应尺码,关联 `M_SIZE.ID`。 --- ## 1.5.10 (2026-07-01) ### 功能 - `clients` 和 `status` 成功获取服务端 client 列表后,会同步刷新本地 `client_list` 缓存。 - `switch` 支持按 client code 或 client title/name 切换;找不到时自动刷新 client 列表后再匹配。 - client 名称模糊匹配到多个结果时,不自动切换,只列出候选项并要求用户指定更准确的 client code。 --- ## 1.5.9 (2026-07-01) ### 文档 - 整理 `SKILL.md` 为执行入口和索引页,将详细说明拆分到 `references/`。 - 新增完整原文备份 `references/legacy-skill-v1.5.8.md`,确保整理过程不遗漏既有内容。 - 记录文档维护规则:精简主文档时只能移动内容到 references,删除内容必须先经过用户同意。 --- ## 1.5.8 (2026-07-01) ### 文档 - 记录 `AD_TABLE_TEXT` 分析结论:可通过 BOS 元数据表反推出系统菜单、模块目录、业务表、字段、主子表、动作、权限目录和报表模板结构。 - 增加 BOS 系统地图分析链路:`AD_SUBSYSTEM -> AD_TABLECATEGORY -> AD_ACCORDION -> AD_TABLE -> AD_COLUMN / AD_REFBYTABLE / AD_ACTION`。 --- ## 1.5.7 (2026-06-17) ### 文档 - 增加条码/SKU 查询优先字段:查询条码时首查 `M_PRODUCT_ALIAS.NO`,再根据条码关联商品和库存。 --- ## 1.5.6 (2026-06-17) ### 文档 - 增加常用业务对象说明:商品/款号默认对应 `M_PRODUCT`,条码/SKU 默认对应 `M_PRODUCT_ALIAS`,款号与条码是一对多关系。 - 增加库存查询约束:库存通常查询 `V_FA_STORAGE`,该视图数据量大,必须通过店仓 + 款号/条码条件查询,并配合行数限制。 --- ## 1.5.5 (2026-06-17) ### 文档 - 增加生产查询限制说明:直接查询业务表时必须带明确过滤条件和行数限制,不要执行无条件整表查询。 - 更新 `query` 示例,强调使用日期、状态、单号、门店、主键等业务条件,并配合 `ROWNUM` 或分页限制。 --- ## 1.5.4 (2026-06-16) ### 文档 - 记录新增业务表单时的提交状态字段默认规则:如果表存在 `STATUS`、`STATUSERID`、`STATUSTIME`,新增草稿表单通常只设置 `STATUS='1'`,不对 `STATUSERID`、`STATUSTIME` 赋值。 - 记录“提交”语义:如果用户提到提交,通常指执行 `AD_TABLE.PROC_SUBMIT` 对应的提交存储过程,提交人和提交时间等字段由提交逻辑处理。 --- ## 1.5.3 (2026-06-16) ### 文档 - 记录 `AD_COLUMN.OBTAINMANNER = 'select'` 的字段值域查询规则:通过 `AD_LIMITVALUE_GROUP_ID` 查询子表 `AD_LIMITVALUE`。 - 当用户使用显示值描述业务含义时,生成查询或新增记录 SQL 前必须先映射为数据库实际值。例如 `XH_ORDER_FTP.BILLTYPE` 显示值“券核销”对应实际入库值 `VOU_USED`。 --- ## 1.5.2 (2026-06-15) ### 文档 - 记录新增业务表记录时的 SQL 生成规则:主键 `ID` 使用 `get_sequences('<表名称>')`。 - 如果表存在 `DOCNO` 字段,先查询 `AD_COLUMN` 中该字段的 `SEQUENCENAME` 单据编号生成器;有值时使用 `Get_SequenceNo('', 37)` 生成单据编号。 - 如果表存在 `AD_CLIENT_ID` 字段,默认值为 `37`;如果存在 `AD_ORG_ID` 字段,默认值为 `27`。 - 子表的 `AD_CLIENT_ID` 和 `AD_ORG_ID` 默认继承父表对应字段值。 --- # 更新日志 ## 1.5.1 (2026-06-15) ### 调整 - Oracle 运维监控函数调用增加当前账号兜底:优先调用 `SYS.HENLO_ORA_MONITOR`,失败后自动尝试 `HENLO_ORA_MONITOR`。 - 函数缺失提示增加双安装方案:可安装到 SYS 并授权,也可在当前 Agent 登录账号已有系统视图权限时安装到当前账号。 --- ## 1.5.0 (2026-06-15) ### 新增 - 新增 `ops [clientCode]`,用于单项 Oracle 日常运维监控。 - 新增 `ops_report [clientCode]`,用于生成 Oracle 运维日报。 - 支持通过中转机 `/api/oracle_ops` 和 `/api/oracle_ops_report` 调用 Agent 受控运维监控 action。 - 支持 `SYS.HENLO_ORA_MONITOR` 定义者权限函数方案,缺失时输出 SYS 函数源码和授权 SQL。 ### 调整 - Oracle 运维监控不再由 skill 直接拼 SQL,而是由中转机鉴权、Agent 白名单 action、SYS 函数共同控制。 - 报告中单项失败不影响整体输出,失败项会在报告末尾汇总。 ### 文档 - 更新 README、SKILL.md、agent.md,记录 Oracle 运维报告、单项命令和 SYS 权限函数方案。 --- ## 1.4.0 (2026-06-11) ### 新增 - 新增低调入口 `checkup [clientCode]`,用于查询客户服务器体检报告。 - 服务器体检报告通过中转机 `/api/server_status` 获取,返回 Markdown 表格。 - 体检报告字段包括 `clientCode`、`info_cpu_rate`、`info_memory_rate`、`info_memory`、`bak_path`、`bak_lastdate`、`computer`。 - 支持用户自然语言询问“服务器体检报告 / 服务器状态 / 备份情况”时调用 `checkup`。 ### 调整 - `login [clientCode]` 改为登录中转机,由中转机调用 BOS `ts_login` 并签发 `access_token`。 - `clientCode` 为客户服务器编号,改为非必填;不传时默认使用 BOS 返回的第一个可用 client。 - 本地配置不再保存 `secretKey`,只保存中转机 token、过期时间、当前 client 和可访问 client 列表。 - 同一个 `secretKey` 同时只允许一个设备在线;新设备登录后旧 token 立即失效。 ### 文档 - 更新 `README.md` 和 `SKILL.md`,补充 `checkup` 服务器体检报告说明。 - 记录 `clientCode` 非必填,以及 token 失效后需要重新 login 的行为。 --- ## 1.3.0 (2026-06-10) ### ✨ 新增 - 表空间查询 5 层自动降级策略 - 第 1 层:`DBA_DATA_FILES` + `DBA_FREE_SPACE` 直接查询(需 `SELECT_CATALOG_ROLE`) - 第 2 层:`sys.get_tablespace_usage()` 专用函数(返回 `SYS_REFCURSOR`) - 第 3 层:`HENLO_TS_USAGE` 授权 VIEW - 第 4 层:`SYS.HENLO_TS_USAGE` 授权 VIEW(带 schema 前缀) - 第 5 层:`USER_FREE_SPACE` 回退查询(始终可用) - 自动输出 DBA 授权 SQL(无权限时自动打印 CREATE VIEW + GRANT 语句) - 函数 `SYS_REFCURSOR` 返回值的正则解析,支持从 Go 结构体 dump 中提取表格数据 - `version` 命令:查看当前版本号 ### 🔧 修复 - 视图创建在 `SYS` schema 下时,自动尝试 `sys.` 前缀查询 - 交互模式和 CLI 模式显示统一:区分 DBA 查询 / 函数查询 / VIEW 查询 / 降级回退 ### 📝 文档 - `SKILL.md`:新增表空间查询文档(5 层降级 + 授权 SQL + schema 前缀说明) - `docs/操作示例.md`:新增完整操作示例(含实际 HENLO 环境输出) - 新增 `CHANGELOG.md`、`VERSION` 文件 --- ## 1.2.0 (2026-06-09) ### ✨ 新增 - 表空间查询基础功能 - 支持 `DBA_DATA_FILES` + `DBA_FREE_SPACE` 查询 - 交互模式支持 `tablespace` / `tablespaces` 命令 - CLI 模式支持 `tablespace` / `tablespaces` 命令 ### 🔧 修复 - 权限不足时自动降级到 `USER_FREE_SPACE` 查询 --- ## 1.1.0 (2026-XX-XX) ### ✨ 新增 - 数据字典查询(AD_TABLE / AD_COLUMN / AD_REFBYTABLE) - `get_tables` 命令:通过存储过程依赖发现表结构 - `describe_table` 命令:查询表结构(列、索引、行数、注释) - `get_userspermsql` 命令:生成用户权限 SQL - `perm` 命令:查询用户权限 - `permq` 命令:带权限过滤的查询 - 交互式模式 ### 🔧 修复 - 各项命令的异常处理优化 --- ## 1.0.0 (2026-XX-XX) ### ✨ 初始版本 - Oracle 跳板查询基础架构 - 通过中转服务 + Agent 查询远程 Oracle - 支持存储过程源码分析、依赖查询、触发器查询 - 多租户授权验证(BOS ts_login / ts_client_check) - 支持 `analyze`、`source`、`list`、`deps`、`trigger` 等命令 - 支持 `query` 命令直接执行 SELECT(只读) ## 1.5.30 (2026-07-21) ### Documentation - Documented `AD_TABLE.MASK` as the table's declared business-action codes: `A` add, `M` modify, `D` delete, `Q` query, `U` cancel submission, `V` void, and `S` submit. - Restored Git/Gitea as the only Skill update source; removed the OSS and `skill_update` release/update instructions. ## 1.5.38 (2026-08-14) ### Trusted device login - Added local Ed25519 key generation and `device-key.json` protection. - Added `device_register` and `device_login` commands for the normal pending/approved trusted-device flow. - Raw MAC values are never sent or stored; only a SHA-256 hash and masked hint are submitted. - Authorization testing passed; included in the private repository release. ## 1.5.39 (2026-08-14) ### Trusted-device token renewal - `ensure_logged_in()` now automatically obtains a new transit token with the approved local device when the token is missing or expired. - Falls back to the normal secret-key login prompt when trusted-device renewal is unavailable. - Authorization testing passed; included in the private repository release. ## 1.5.40 (2026-08-17) ### Trusted-device key location - Store the trusted-device key at `~/.oracle-jump-query/device-key.json`, shared by all installations of the Skill for the same Windows user. - Never migrate or overwrite another key; the private key is created once and never committed or uploaded. ## 1.5.41 (2026-08-17) ### Trusted-device detection - `login` may now be run without a secret key; the Skill first detects an approved local trusted device and obtains a token automatically. - A secret-key login is requested only when no approved device is available.