@hedeqiang/dsh-nl2sql 0.12.0 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -1
- package/lib/client.js +7 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.12.1] - 2026-11-12
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- History & audit: the per-row delete button overlapped the row count and duration columns; it now has its own column.
|
|
12
|
+
|
|
8
13
|
## [0.12.0] - 2026-11-12
|
|
9
14
|
|
|
10
15
|
### Added
|
|
@@ -81,7 +86,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
|
81
86
|
|
|
82
87
|
- Redesigned UI; Lark push (Markdown and native charts); access control, feedback loop, dashboard global filters; PostgreSQL / Elasticsearch, SSH tunnels, privacy settings, automatic overviews, scheduled reports; semantic layer, ER graph, scan guard, history and audit, dashboards; first version.
|
|
83
88
|
|
|
84
|
-
[Unreleased]: https://github.com/hedeqiang/dsh-nl2sql/compare/v0.12.
|
|
89
|
+
[Unreleased]: https://github.com/hedeqiang/dsh-nl2sql/compare/v0.12.1...HEAD
|
|
90
|
+
[0.12.1]: https://github.com/hedeqiang/dsh-nl2sql/compare/v0.12.0...v0.12.1
|
|
85
91
|
[0.12.0]: https://github.com/hedeqiang/dsh-nl2sql/compare/v0.11.2...v0.12.0
|
|
86
92
|
[0.11.2]: https://github.com/hedeqiang/dsh-nl2sql/compare/v0.11.1...v0.11.2
|
|
87
93
|
[0.11.1]: https://github.com/hedeqiang/dsh-nl2sql/releases/tag/v0.11.1
|
package/lib/client.js
CHANGED
|
@@ -1732,8 +1732,10 @@ window.__ModuleLoader__.load({
|
|
|
1732
1732
|
.n2s-hist{border:.5px solid var(--n2s-line-2);border-radius:var(--n2s-radius);overflow:hidden;background:var(--dsw-alias-bg-layer-1)}
|
|
1733
1733
|
.n2s-hist-row{border-bottom:.5px solid var(--n2s-line)}
|
|
1734
1734
|
.n2s-hist-row:last-child{border-bottom:0}
|
|
1735
|
-
.n2s-hist-
|
|
1736
|
-
.n2s-hist-
|
|
1735
|
+
.n2s-hist-head{display:flex;align-items:center}
|
|
1736
|
+
.n2s-hist-head:hover{background:var(--n2s-hover)}
|
|
1737
|
+
.n2s-hist-head .n2s-rowdel{flex:none;margin-right:10px}
|
|
1738
|
+
.n2s-hist-main{display:grid;grid-template-columns:76px minmax(0,1fr) 150px 84px 20px;align-items:center;gap:14px;flex:1;min-width:0;width:100%;padding:11px 6px 11px 16px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
|
|
1737
1739
|
.n2s-hist-main:focus-visible{outline:2px solid var(--n2s-accent);outline-offset:-2px}
|
|
1738
1740
|
.n2s-hist-what{display:grid;gap:2px;min-width:0}
|
|
1739
1741
|
.n2s-hist-title{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
@@ -1965,8 +1967,6 @@ window.__ModuleLoader__.load({
|
|
|
1965
1967
|
.n2s-recent-row:hover .n2s-recent-del,.n2s-recent-del:focus-visible,.n2s-hist-row:hover .n2s-rowdel,.n2s-rowdel:focus-visible{opacity:1}
|
|
1966
1968
|
.n2s-recent-del:hover,.n2s-rowdel:hover{color:var(--n2s-err)}
|
|
1967
1969
|
@media (hover:none){.n2s-recent-del,.n2s-rowdel{opacity:1}}
|
|
1968
|
-
.n2s-hist-row.has-del{position:relative}
|
|
1969
|
-
.n2s-rowdel{position:absolute;top:10px;right:40px;z-index:1}
|
|
1970
1970
|
.n2s-morebtn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:36px;margin-top:6px;border:.5px dashed var(--n2s-line-2);border-radius:var(--n2s-radius-sm);background:transparent;color:var(--n2s-muted);font:inherit;font-size:13px;cursor:pointer}
|
|
1971
1971
|
.n2s-morebtn:hover{background:var(--n2s-hover);color:var(--dsw-alias-label-primary)}
|
|
1972
1972
|
.n2s-btn.danger-text{color:var(--n2s-err)}
|
|
@@ -3425,8 +3425,8 @@ window.__ModuleLoader__.load({
|
|
|
3425
3425
|
!list.loading && rows.length === 0 && h('div', { className: 'n2s-empty' }, h('h3', null, t('hist.empty')), h('div', null, t('hist.emptyHint'))),
|
|
3426
3426
|
rows.length > 0 && h('div', { className: 'n2s-hist', role: 'list' }, rows.map(r => {
|
|
3427
3427
|
const isOpen = open === r.id
|
|
3428
|
-
return h('div', { key: r.id ?? `${r.at}`, className: 'n2s-hist-row
|
|
3429
|
-
h('
|
|
3428
|
+
return h('div', { key: r.id ?? `${r.at}`, className: 'n2s-hist-row', role: 'listitem' },
|
|
3429
|
+
h('div', { className: 'n2s-hist-head' },
|
|
3430
3430
|
h('button', { type: 'button', className: 'n2s-hist-main', 'aria-expanded': isOpen, onClick: () => setOpen(isOpen ? null : r.id) },
|
|
3431
3431
|
statusDot(r.status),
|
|
3432
3432
|
h('span', { className: 'n2s-hist-what' },
|
|
@@ -3435,6 +3435,7 @@ window.__ModuleLoader__.load({
|
|
|
3435
3435
|
h('span', { className: 'n2s-hist-when' }, h('span', { title: new Date(r.at).toLocaleString() }, rel(r.at)), h('span', { className: 'src' }, `${t(`hist.source.${r.source}`)} · ${r.datasourceName ?? ''}`)),
|
|
3436
3436
|
h('span', { className: 'n2s-hist-num' }, r.rows !== undefined ? fmt(t, 'result.rows', { count: r.rows }) : '—', h('br'), r.elapsedMs !== undefined ? `${r.elapsedMs} ms` : ''),
|
|
3437
3437
|
h('span', { className: 'n2s-hist-chev' }, Icon.chev(12))),
|
|
3438
|
+
h('button', { type: 'button', className: 'n2s-iconbtn n2s-rowdel', title: t('hist.deleteOne'), 'aria-label': `${t('hist.deleteOne')}: ${r.title || t('hist.untitled')}`, onClick: () => removeRow(r) }, Icon.trash(14))),
|
|
3438
3439
|
isOpen && h('div', { className: 'n2s-hist-detail' },
|
|
3439
3440
|
r.error && h('div', { className: `n2s-notice ${r.status === 'blocked' ? 'warn' : 'err'}` }, r.error),
|
|
3440
3441
|
h('div', { style: { position: 'relative' } },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hedeqiang/dsh-nl2sql",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.1",
|
|
4
4
|
"description": "Ask MySQL, PostgreSQL, Elasticsearch and CSV/Excel in plain language inside DeepSeek Harness: charts, dashboards, alerts, and IM push and bots for Lark/Feishu, Telegram, WeCom and DingTalk.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|