Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,22 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
image-profile geometry, and is discarded on Cancel or Escape. For a single
source, OK reuses a completed current preview once; stale, running and
multi-selection previews fall back to normal processing.
- **Add metadata:** _Edit > Metadata > Add metadata…_ can now extract the value from the formatted text with a regular expression, for example an exposure time or a shot number read from object titles. Objects without a match are left unchanged unless you ask for an error, a scale factor converts numeric values (e.g. milliseconds to seconds), and a live preview shows the resulting values. Keys may contain dots and hyphens, as used by plugin keys, and a **Known keys** list copies a key already present on the selected objects. Invalid settings are reported and the dialog reopens with your entries.

### Changed

- **Welcome page:** the "NEW" badge on the release notes entry has been removed.
- **Histogram range editors:** generic parameter intervals now respect linked numeric constraints and read-only states. Brightness and contrast retains its specialized controls, including exact float64 window editing outside the source image's observed range.
- **Guidata compatibility:** browser runtimes now require guidata 3.15 and use
its native async DataSet backend and JSON Schema exporter. The former
backend backport has been removed; a focused compatibility patch preserves
the `FloatArrayItem` sizing and numeric-parity hints required by browser
editors.

### Fixed

- **Plugin and macro dialogs:** fields enabled by another option, and values computed from other fields, now update while the dialog is open; they previously stayed frozen until the dialog was closed.

## [0.9.0] - 2026-08-11

### Added in 0.9.0
Expand Down
5 changes: 1 addition & 4 deletions src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4438,7 +4438,7 @@
onReloadAll: handleReloadPlugins,
}),
],
[

Check warning on line 4441 in src/App.tsx

View workflow job for this annotation

GitHub Actions / TypeScript (Vitest)

React Hook useMemo has a missing dependency: 'handleOpenFromDirectory'. Either include it or remove the dependency array
treeKind,
visibleFeatures,
signalTypes,
Expand Down Expand Up @@ -5324,10 +5324,7 @@
/>
)}
{releaseNotesOpen && (
<ReleaseNotesDialog
appVersion={(import.meta.env.VITE_APP_VERSION as string) ?? "dev"}
onClose={() => setReleaseNotesOpen(false)}
/>
<ReleaseNotesDialog onClose={() => setReleaseNotesOpen(false)} />
)}
{h5BrowserFiles !== null && (
<Suspense fallback={null}>
Expand Down
6 changes: 6 additions & 0 deletions src/components/DialogBridge.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,12 @@ export function DialogBridge() {
? (currentValues) => runtime.resolveBridgeActive(currentValues)
: undefined
}
resolveCallbacks={
runtime
? (itemName, currentValues) =>
runtime.resolveBridgeCallbacks(itemName, currentValues)
: undefined
}
/>
);
}
Expand Down
14 changes: 1 addition & 13 deletions src/components/releasenotes/ReleaseNotesDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,10 @@
* with the application bundle and always matches the running version.
* Markdown is rendered with the shared :mod:`MarkdownView` (``marked``
* + ``DOMPurify``).
*
* Opening the dialog records the current version as "seen" via
* :func:`markReleaseSeen`, which clears the "NEW" badge surfaced by
* the Welcome page.
*/

import { useEffect } from "react";
import { MarkdownView } from "../AIAssistant/MarkdownView";
import { markReleaseSeen } from "../../utils/releaseNotes";
import changelogMd from "../../../CHANGELOG.md?raw";

/**
Expand Down Expand Up @@ -44,12 +39,10 @@ function stripEmptyUnreleased(md: string): string {
const releaseNotesMd = stripEmptyUnreleased(changelogMd);

interface Props {
/** Current application version (e.g. ``"0.2.0"``). */
appVersion: string;
onClose: () => void;
}

export function ReleaseNotesDialog({ appVersion, onClose }: Props) {
export function ReleaseNotesDialog({ onClose }: Props) {
// Esc closes the dialog (mirrors HelpDialog).
useEffect(() => {
const handler = (event: KeyboardEvent) => {
Expand All @@ -59,11 +52,6 @@ export function ReleaseNotesDialog({ appVersion, onClose }: Props) {
return () => window.removeEventListener("keydown", handler);
}, [onClose]);

// Mark this version as seen as soon as the dialog is mounted.
useEffect(() => {
markReleaseSeen(appVersion);
}, [appVersion]);

return (
<div
className="overlay"
Expand Down
16 changes: 1 addition & 15 deletions src/components/welcome/WelcomeView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import { getRootIconUrl } from "../../assets/rootIcons";
import { getIoIconUrl } from "../../assets/ioIcons";
import { getHelpIconUrl } from "../../assets/helpIcons";
import { getH5IconUrl } from "../../assets/h5Icons";
import { useUnseenRelease } from "../../utils/releaseNotes";
import { t } from "../../i18n/translate";

type Kind = "signal" | "image";
Expand Down Expand Up @@ -71,10 +70,6 @@ interface QuickAction {
* choose between Signal and Image. ``onKindSelect`` receives the
* picked kind. */
onKindSelect?: (kind: Kind) => void;
/** Optional short text rendered as a coloured pill at the end of the
* row label (e.g. ``"NEW"`` to highlight the release notes entry on
* the first launch after an upgrade). */
badge?: string;
}

/** Read/write helper for the "show welcome on startup" preference. */
Expand Down Expand Up @@ -110,7 +105,6 @@ export function WelcomeView({
onOpenReleaseNotes,
onOpenAIAssistant,
}: WelcomeViewProps) {
const releaseNotesUnseen = useUnseenRelease(appVersion);
const startActions: QuickAction[] = [
{
iconUrl: getRootIconUrl("signal.svg"),
Expand Down Expand Up @@ -180,7 +174,6 @@ export function WelcomeView({
"Browse the full release notes and recent changes to DataLab-Web.",
),
onClick: onOpenReleaseNotes,
badge: releaseNotesUnseen ? "NEW" : undefined,
},
];

Expand Down Expand Up @@ -310,14 +303,7 @@ function WelcomeActionRow({
/>
)}
<span className="welcome-action-text">
<span className="welcome-action-label">
{action.label}
{action.badge && (
<span className="welcome-action-badge" aria-label={t("New")}>
{action.badge}
</span>
)}
</span>
<span className="welcome-action-label">{action.label}</span>
{action.description && (
<span className="welcome-action-description">
{action.description}
Expand Down
1 change: 0 additions & 1 deletion src/locales/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -638,7 +638,6 @@
"n": "n",
"Name": "Nom",
"Nearest": "Plus proche",
"New": "Nouveau",
"New axis": "Nouvel axe",
"New conversation": "Nouvelle conversation",
"New group": "Nouveau groupe",
Expand Down
Loading
Loading