Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 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
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### 🛠 Breaking changes

### 🎉 New features
- Add `osprey-stress` CLI: closed-loop stress harness that produces synthetic events at a configurable rate, observes their `ExecutionResult`s on the output topic, and reports drop rate + p50/p95/p99 latency. Exits non-zero on threshold breach so it can gate CI on pipeline health. Prints input/output topic head deltas at start and end of each run so prior-run backlog and pipeline backpressure are visible; `--verbose` adds periodic in-run progress lines. Closes [#324](https://github.com/roostorg/osprey/issues/324); built across [#327](https://github.com/roostorg/osprey/pull/327) (UDF), [#328](https://github.com/roostorg/osprey/pull/328) (reporter), [#329](https://github.com/roostorg/osprey/pull/329) (producer), [#330](https://github.com/roostorg/osprey/pull/330) (consumer). The `measure` subcommand is reserved for open-loop mode against jetstream traffic once [#236](https://github.com/roostorg/osprey/pull/236) lands.
- Add Postgres execution result store ([#171](https://github.com/roostorg/osprey/pull/171) by [@serendipty01](https://github.com/serendipty01))
- Add `ParseInt` UDF — converts a numeric string to an integer ([#190](https://github.com/roostorg/osprey/pull/190) by [@bealsbe](https://github.com/bealsbe))
- Add `StringSlice` UDF which extracts a substring by index range ([#189](https://github.com/roostorg/osprey/pull/189) by [@bealsbe](https://github.com/bealsbe))
Expand All @@ -27,3 +28,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### 🐛 Bug fixes
- Default to selecting all for event stream ([#194](https://github.com/roostorg/osprey/pull/194) by [@chimosky](https://github.com/chimosky))
- Fix failed UDF query ([#233](https://github.com/roostorg/osprey/pull/233) by [@chimosky](https://github.com/chimosky))
- Force a visible scrollbar on the event-stream virtualized list so long result sets are easier to skim (was relying on the OS auto-hide default)
28 changes: 28 additions & 0 deletions osprey_ui/src/components/event_stream/EventStream.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,34 @@
outline: none;
}

/* react-virtualized renders a scrolling div with class `ReactVirtualized__List`.
On macOS the default scrollbar auto-hides until you're actively scrolling,
which makes it hard to skim long result sets — flagged in PR #367. Force a
thin always-visible bar in the theme colors. */
.virtualizedList :global(.ReactVirtualized__List) {
scrollbar-width: thin;
scrollbar-color: var(--text-light-secondary) var(--background-secondary);
}

.virtualizedList :global(.ReactVirtualized__List)::-webkit-scrollbar {
width: 10px;
height: 10px;
}

.virtualizedList :global(.ReactVirtualized__List)::-webkit-scrollbar-track {
background: var(--background-secondary);
}

.virtualizedList :global(.ReactVirtualized__List)::-webkit-scrollbar-thumb {
background-color: var(--text-light-secondary);
border-radius: 5px;
border: 2px solid var(--background-secondary);
}

.virtualizedList :global(.ReactVirtualized__List)::-webkit-scrollbar-thumb:hover {
Comment on lines +25 to +45

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Stylelint currently rejects :global(...) selectors used in this block.

selector-pseudo-class-no-unknown is raised on each :global(...) selector here, so this likely fails CI unless stylelint is configured for CSS Modules syntax. Please add the appropriate stylelint config exception/plugin (preferred) or narrowly-scoped lint suppression with justification.

🧰 Tools
🪛 Stylelint (17.13.0)

[error] 25-25: Unknown pseudo-class selector ":global" (selector-pseudo-class-no-unknown)

(selector-pseudo-class-no-unknown)


[error] 30-30: Unknown pseudo-class selector ":global" (selector-pseudo-class-no-unknown)

(selector-pseudo-class-no-unknown)


[error] 35-35: Unknown pseudo-class selector ":global" (selector-pseudo-class-no-unknown)

(selector-pseudo-class-no-unknown)


[error] 39-39: Unknown pseudo-class selector ":global" (selector-pseudo-class-no-unknown)

(selector-pseudo-class-no-unknown)


[error] 45-45: Unknown pseudo-class selector ":global" (selector-pseudo-class-no-unknown)

(selector-pseudo-class-no-unknown)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@osprey_ui/src/components/event_stream/EventStream.module.css` around lines 25
- 45, The scrollbar styling block in EventStream.module.css uses CSS Modules
:global(...) selectors that Stylelint flags as unknown, so update the lint setup
to understand CSS Modules selectors for this file or add a narrowly scoped
suppression with justification. Use the virtualizedList and
ReactVirtualized__List selector block as the target when applying the fix, and
prefer a config/plugin change over silencing the rule globally.

Source: Linters/SAST tools

background-color: var(--text-light-primary);
}

.iconText {
margin-right: 8px;
}
Expand Down
1 change: 1 addition & 0 deletions osprey_worker/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ dependencies = [
]
[project.scripts]
osprey-cli = "osprey.worker.lib.cli:cli"
osprey-stress = "osprey.worker.stress.cli:main"

[project.entry-points."osprey_plugin"]
stdlib = "osprey.worker._stdlibplugin"
Expand Down
Loading
Loading