fix: surface hash-duplicate warning and add manual refresh
Build / Check Links (push) Failing after 6s
Check Release / check_release (push) Failing after 1m1s
Build / build (push) Failing after 1m25s
Build / test_isolated (push) Skipped
Build / Integration tests (push) Skipped

Three issues fixed:

1. **Skipped-commit warning not visible** — When the user commits
   unchanged content (hash matches most recent version), the backend
   correctly returns {skipped: true, reason: "unchanged", message: ...}
   but the frontend Notification.warning was easy to miss (default
   4-5s autoClose, small toast at top-right). Now uses {autoClose: false}
   so the warning stays until manually dismissed, plus a console.log
   of the raw commit response for debugging. Added a fallback branch
   that warns clearly if the response shape is unexpected.

2. **No manual refresh on the panel** — In S3 setups the list call
   can occasionally lag the just-committed entry (manifest strong
   consistency is a per-implementation property). Added a "刷新"
   button at the top of the sidebar that calls model.refresh(), letting
   the user force a re-fetch when the auto-refresh misses.

3. **S3 addressing_style** — user-side config addition: S3Storage
   now uses path-style addressing (endpoint/bucket/key) which is the
   format required by MinIO and several other S3-compatible services.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
tao.chen
2026-07-21 18:23:34 +08:00
co-authored by Claude
parent cd1aba6698
commit bc1828bde6
4 changed files with 130 additions and 67 deletions
+31
View File
@@ -13,6 +13,37 @@
box-sizing: border-box;
}
.jp-snapshot-panel-container {
display: flex;
flex-direction: column;
height: 100%;
}
.jp-snapshot-panel-toolbar {
display: flex;
justify-content: flex-end;
margin-bottom: 6px;
}
.jp-snapshot-panel-refresh-button {
font-size: 0.8em;
padding: 2px 8px;
border: 1px solid var(--jp-border-color2, #ccc);
border-radius: 3px;
background: var(--jp-layout-color2, #f5f5f5);
color: var(--jp-ui-font-color1, #333);
cursor: pointer;
}
.jp-snapshot-panel-refresh-button:hover:not(:disabled) {
background: var(--jp-layout-color3, #e8e8e8);
}
.jp-snapshot-panel-refresh-button:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.jp-snapshot-panel-empty {
color: var(--jp-ui-font-color2, #555);
padding: 12px;