GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Backlog/darkweb feature by AndresTK89 · Pull Request #2994 · utmstack/UTMStack

Conversation

@AndresTK89

@AndresTK89 AndresTK89 commented Oct 27, 2026

Copy link
Copy Markdown

dark web monitoring UI interface

  • breach list
  • breach details
  • export options

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
AlexSanchez-bit and others added 30 commits September 25, 2026 09:52
@AlexSanchez-bit
Backlog/v12 mcp soar nodes discovery (#2754)
489c9fa
* fix[backend](mcp): add soar.node_types tool for flow node kind and executor discovery

* chore[](): updated go deps
@AlexSanchez-bit
Backlog/v12 soar asisted edition (#2761)
919173f
* fix[frontend](soar-flows): removed redundant llm action node

* fix[backend](mcp/soar): updated flow properties schema in mcp catalog

* fix[frontend](soc-ai): drop dashboard chat scope when cleared outside dashboard view

* feat[frontend](soar/assitant): Edit with AI in flow editor

* feat[frontend](soar): click soar-edit panel header to open the active flow

* feat[frontend](soar): create flow with AI

* fix[backend](mcp/soar): fixed notifications type schema
@Kbayero
Merge bMerge v12 into release/v12.0.0ranch 'v12' into release/v12.0.0
e5304a4
@AlexSanchez-bit @AndresTK89
Backlog/widget drag and drop (#2794)
4bb260a
* added css class for drag and drop movement pointer

* relocate grid placeholder CSS to feature styles

---------

Co-authored-by: Andres Aguilera <[email protected]>
@AlexSanchez-bit
Backlog/v12 dashboard filters (#2804)
bf87020
* feat[backend](dashboards): added filters on dashboards

* fix[frontend](dashboards): added dashboard filter support

* fix[frontend](dashboards): added toast for every dashboard filter operation
@AlexSanchez-bit
fix[backend](pipelines): added tenant scope on pipeline updates (#2805)
961fb8c
@Kbayero @claude
Merge branch 'v12' into release/v12.0.0
e34c500
Brings in e6d505c (fix(v12): keep schedule job green when a product has
zero instances configured), the only commit on origin/v12 not yet here.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
@Kbayero
feat(v12): replace Redis with Valkey, add alerts dedup/group cache, r…
a50009f
…epin go-sdk everywhere

Three changes landing together because the last two depend on the first:

- Redis -> Valkey: service, image (valkey/valkey:9-alpine), data dir and
  command in the installer; every consumer renamed to match
  (REDIS_ADDR/REDIS_PASSWORD/REDIS_DB -> VALKEY_ADDR/VALKEY_PASSWORD/
  VALKEY_DB) in agent-manager and log-input. go-redis itself is untouched --
  it already speaks Valkey's protocol.

- plugins/alerts: wires go-sdk's new store/cache into isDuplicate and
  getPreviousAlertId as a fast path in front of ClickHouse, closing the
  race where a burst of alerts for the same GroupBy/DeduplicateBy value,
  arriving faster than ClickHouse's own write-visibility lag, each see
  "nothing yet" and each create their own root alert. An atomic Claim
  picks exactly one winner among concurrent callers instead.

- go-sdk repinned to a596631 across every remaining plugin (ad-audit, aws,
  azure, bitdefender, crowdstrike, events, feeds, gcp, geolocation, o365,
  playground, rule-flood-guard, soar, soc-ai, sophos, stats) -- previously
  split across v1.1.27/28/31, none of which had this session's ClickHouse
  or cache fixes.

go build/go vet/go test clean across all 17 plugin modules touched.
@AlexSanchez-bit
fix[backend](iam): removed idp providers default value on active, so …
3aa787b
…false is not treated as empty and uses the default true (#2809)
@AlexSanchez-bit
fix[backend](incidents): added tenant id on newly added incident aler… (
140adbd
#2811)

* fix[backend](incidents): added tenant id on newly added incident alerts so newly linked alerts dont get a no tenant state

* fix[backend](incidents): avoided empty incident alert update call
@AlexSanchez-bit
fix[backend](incidents): added mark as incident alerts on incident cr…
c8029b3
…eation (#2817)
@AlexSanchez-bit
fix[backend](pipelines): fixed pipeline edition error (#2818)
ebc5667
@AlexSanchez-bit
fix[backend](pipelines): fixed pipeline update tenant shadowing (#2819)
5146b7e
* fix[backend](pipelines): fixed pipeline update tenant shadowing

* chore[](): updated go deps
@AlexSanchez-bit
fix[frontend](pipelines): remove tenant id from pipeline name (#2823)
2ce9960
@Kbayero
feat(v12): redesign SOC-AI triage to ~1 LLM call, fix config-save 429…
ecb0abf
…, replace capabilities with allowIncidents
@Kbayero
fix(v12): fix SOAR flow creation — lost name, created disabled, redun…
a35ca3b
…dant AI prompt
@Kbayero
chore(definitions): sync filters and rules from v11 (Sep 2026 updates)
801cbc5
@AlexSanchez-bit
fix[backend](soar): added flow creation validations (#2830)
a54197e
@AlexSanchez-bit
fix[frontend](dashboards): added visualizations update after edition (#…
e71115e
…2833)
@AlexSanchez-bit
Backlog/v12 soar assistant (#2838)
2981c46
* feat[frontend](soar/socai): add soarCreateTitle i18n key

* fix[backend](soar): changed soar flow tool names
@AndresTK89
alert log explorer range of date (#2802)
3cc071a
@AlexSanchez-bit @AndresTK89
expanded log detail no longer clipped to table width (#2793)
51659c2
Co-authored-by: Andres Aguilera <[email protected]>
@AndresTK89 @AlexSanchez-bit
fix[frontend](incidents): seed incident-linked alert into the alerts …
237815f
…view reliably (#2835)

The "Open in Alerts" link in the incident drawer seeded socaiTime 'now-30d',
which presetRange does not match (it looks up by preset id), falling back to
24h and hiding the alert once it aged past a day. It now seeds '30d'.

AlertsPage applied router-state seeds in a post-mount effect, racing the
initial unseeded fetch: whichever response landed last won, so the filtered
list intermittently clobbered back to all alerts. readSeed() now resolves the
seed synchronously into the initial customFilters/range state so the first
fetch already carries it.

Co-authored-by: Alex Sánchez <[email protected]>
@AlexSanchez-bit
Backlog/v12 soar assistant (#2841)
4128813
* fix[definitions](soar): updated system soar flows to new flow schemas

* fix[plugins](socai): instruct ops agent to follow user instructions exactly when creating SOAR flows

* chore[](): updated go deps
@AndresTK89 @AlexSanchez-bit
validate identity provider form fields before save (#2816)
31d8d0d
* validate identity provider form fields before save

* fix[backend](iam): added identity provider format validations

* fix[frontend](iam): accept bracketed IPv6 hosts on idp form, clean dead ?? on paren check, port message 0..65535

- HOST_RE now allows [::1] alongside bare hostnames (the form no longer
  blocks IPv6 LDAP hosts; backend parity + the dial gap are documented in
  idp-form-validation.md under "Paridad con el backend").
- userFilter paren balance: each side resolves to a number with its own
  ?? 0. The right-hand ?? in the old one-liner was dead code (!== binds
  before ??), which read as if it guarded a zero-paren filter.
- 7 locales: port error says "between 0 and 65535" to match the validator
  and the backend, where 0 is the default (dialled as 389).
- 4 regression tests: bracketed IPv6 accepted, unbracketed rejected,
  single unclosed paren flagged, zero-paren filter accepted.

* fix[backend](iam): align LDAP host validation with dial for bracketed IPv6; fix bind password and name checks

---------

Co-authored-by: Alex Sánchez <[email protected]>
Co-authored-by: Alex Sánchez <[email protected]>
@AndresTK89
fix[frontend](user-auditor): replace flat filters string with the 9-k…
d17d434
…ey object used by CustomFilterBar, mirroring alerts.filters per locale (#2844)
@AlexSanchez-bit
fix[backend](soar/mcp): make soar.rule.update partial (merge + delete…
1c69e9b
…d_nodes), docs/prompt instruct delta-only updates (#2845)
@AlexSanchez-bit
fix[backend](alerts): removed false positive when changing from compl…
295db52
…ete to open (#2846)
@yllada
fix[forwarder]: drain ProcessLog acks to prevent gRPC stream EOF afte…
0ac6eab
…r ~40min (#2855)

The forwarder opened the bidirectional ProcessLog stream but only called
Send() — it never drained the Ack responses that log-input sends per log.
Unread acks filled the HTTP/2 flow-control window, backpressure built up
through the queue and the TCP listener, ingestion lag grew to ~13 min, and
the stream died with EOF after ~40 minutes; reconnect reset the lag.

Restructure upstream/logprocessor.go to mirror agent/agent/logprocessor.go
(minus the db layer):
- LogProcessor singleton (sync.Once) with conn/ack/sendErrWritten dedup flags
- handleAcknowledgements: drains plClient.Recv(), cancels on stream error
- processLogs: sends from collectorpkg.LogQueue, cancels on stream error
- createClient: invalid collector key backoff (codes.PermissionDenied, since
  log-input returns 'invalid credential'), up to 5 min, no self-uninstall
  (forwarder is a server-side service, cannot UninstallAll like the agent)
- service.go: obtain processor via GetLogProcessor() then run ProcessLogs
- collector.go: LogQueue raised 1000 -> 10000 to match the agent

Verified e2e 2026-10-07: 45+ min sustained at 10 logs/s, stream stayed up,
logs arriving with current timestamps, no lag growth, no EOF.

Fixes #2827
@AlexSanchez-bit
Backlog/v12 soar asistant update (#2856)
20889ad
* fix[backend](soar/mcp): improved create /update schema descriptions and sync catalog and tools reference

* fix[plugins](soc-ai): changed toolcall usage policy and temperature

---------

Signed-off-by: Alex Sánchez  <[email protected]>
Kbayero and others added 23 commits October 22, 2026 05:05
@Kbayero
fix(eventprocessing): accept v12 correlation steps on import and stop…
ded0ab5
… Import panicking
@Kbayero
feat(alerts): show the events of an alert's echoes in the Events tab
66984fe
@Kbayero
update go-sdk version
c1a1276
@AlexSanchez-bit
fix[frontend](integrations): fixed setup guide of forwarders on custo…
4a53b8c
…m integrations (#2959)
@AlexSanchez-bit
fix[frontend](pipeline-filters): allowed multy entry pipeline edition (…
005916a
…#2961)
@AlexSanchez-bit
fix[frontend](pipeline-filters): improved pipeline filter repath gene… (
8ef4a70
#2962)

* fix[frontend](pipeline-filters): improved pipeline filter repath generation

* fix[frontend](pipeline-filters): transform every non alfanumeric character into underscore

Signed-off-by: Alex Sánchez  <[email protected]>

---------

Signed-off-by: Alex Sánchez  <[email protected]>
@AlexSanchez-bit
Backlog/v12 ai asistant chat (#2965)
ad45e11
* fix[frontend](threatintel): added full ai analyst components and tools

* feat[backend](threatintelligense): added ai asistant conversations persistence (tenant scoped)

* fix[frontend](threatintel): added markdown module and full ai sistant visualizations

* feat[backend](audit_log): added audit events on analyst conversation handler

* fix[backend](threatintel): added ai asistant chat unique index (tenant+title)
@AlexSanchez-bit
Backlog/v12 soar prebuilt nodes (#2973)
d0c1486
* fix[frontend](soar): scoped shell node templates by its selected platform

* fix[frontend](soar): added pre built shell nodes
@AlexSanchez-bit
Backlog/v12 soar flows interpolation (#2976)
2ef4bd1
* fix[frontend](threat-intel): gate generic corpus fallback on un-narrowed search; empty lookup resets query

* fix[frontend](soar): reverted flow direction on execution history

* fix[backend](soar): fixed context bag on soar flow interpolation
@JocLRojas
fix(backend-modules-alerts): return full events in echo and detail en…
61d137a
…dpoints (#2978)
@AndresTK89
feat(dark-web-monitoring): implement Dark Web Monitoring page with de…
072fddc
…mo data and testing

- Added DarkWebMonitoringPage component to manage and display dark web monitoring records.
- Introduced types for DarkWebRecord and OrganizationBreachStats to structure data.
- Created demo records and organization breach statistics for testing purposes.
- Implemented filtering, searching, and exporting functionalities for records.
- Developed unit tests for DarkWebMonitoringPage to ensure proper rendering and functionality.
@AndresTK89
feat(dark-web-monitoring): add custom range and advanced export optio…
66b1f2d
…ns dialogs

- Implemented CustomRangeExportDialog for selecting date ranges for exports.
- Added AdvancedExportOptionsDialog to allow users to apply filters and choose export options.
- Updated DarkWebMonitoringPage to handle opening and closing of the new dialogs.
- Enhanced export functionality to support filtering and date range selection.
- Added corresponding translations for new dialogs in English, German, Spanish, French, Italian, Portuguese, and Russian.
- Created unit tests for the new functionalities to ensure proper behavior.
@AndresTK89
feat(dark-web-monitoring): add breach details drawer and related func…
2ab62d1
…tionality
@AlexSanchez-bit
Backlog/v12 frontend fixes (#2982)
b07c7a7
* fix[frontend](alerts): fixed events count on alert drawer

* fix[frontend](logexplorer): added sidebar filter option (outside)

* chore[frontend](): updated ecma script reference

* fix[frontend](shared): added field filter on custom filters

* Remove debug log from LogExplorerView

Signed-off-by: Alex Sánchez  <[email protected]>

* fix[frontend](alerts): make related logs loas reactive to alert param

Signed-off-by: Alex Sánchez  <[email protected]>

* chore[](): updated go deps

---------

Signed-off-by: Alex Sánchez  <[email protected]>
@AlexSanchez-bit
feat[frontend](alerts/live_operations): added new live operations view (
0d0d856
#2983)
@AlexSanchez-bit
feat[frontend](alerts/live_operations): added new live operations on …
22a0ffa
…sidebar entry (#2988)
@AlexSanchez-bit
fix[frontend](shared): fixed filter updates on empty values (#2990)
6b4fd7c
@Kbayero
feat(storage): cold storage on S3, Azure Blob or a local folder/NFS, …
a1da336
…with a warning instead of a lock when the destination changes
@Kbayero
Merge branch 'release/v12.0.0' of https://github.com/utmstack/UTMStack …
bff52cd
…into release/v12.0.0
@AndresTK89
feat(dark-web-monitoring): implement StatusPill component for breach …
1d501f5
…status management

- Added StatusPill component to handle breach status selection and display.
- Removed inline status handling from DarkWebMonitoringPage and integrated StatusPill.
- Updated DarkWebMonitoringPage to manage status changes through StatusPill.
- Enhanced internationalization with new keys for status management in multiple languages (en, de, es, fr, it, pt, ru).
- Added localized strings for mitigation steps and reasons for listing breaches.
@AlexSanchez-bit
Backlog/v12 live ops (#2991)
82900c0
* fix[frontend](shared): fixed filter updates on empty values

* fix[frontend](liveops): improved time filtering and refactored module

* fix[frontend](liveops): added loading indicator on filter change fetch

* liveops: use alert's real target name in scene zone labels

- WebAttack zone: 'Customer portal' -> target name
- BruteForce cloud zone: 'Microsoft cloud' -> target name
- travel scene: add home anchor to facts (was NaN first sign-in point)

* fix[frontend](liveops): added internationalization on ai questions

* fix[frontend](liveops): added internationalization on tooltips

* fix[frontend](liveops): added internationalization on scenes texts

* fix[frontend](liveops): added internationalization on scene descriptions and alert bell

* chore[](): updated go deps
@AlexSanchez-bit yllada
Backlog/v12 dashboard order (#2993)
c0a234d
* feat[frontend](dashboards): ordered dashboards by visualisations count

* refactor[frontend](settings): refactored settings data retention page to improve manteinability

* chore[agent](): upgraded agent version

Co-authored-by: yllada <yllada@://github.com>

---------

Co-authored-by: yllada <yllada@://github.com>
@AndresTK89
feat(dark-web-monitoring): implement TimeRangeFilter component and up…
3f743f5
…date date input handling
@github-actions

github-actions Bot commented Oct 27, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

🛑 AI review — Sensitive area, extra care recommended

This PR touches critical paths or introduces changes the model cannot judge with sufficient confidence. Review carefully before merging.

🛑 architecture (silas-1.7-pro) — high/critical — please review

Summary: Frontend dark-web feature adds speculative HTTP contract, mutable mock singleton, and client-side secret/export logic; needs backend contract and secret-handling review.

  • high frontend/src/features/dark-web-monitoring/lib/export.ts:80 — Client-side export can include raw password/hashedPassword fields; move export and masking to an authorized backend endpoint or shared API layer so the frontend does not handle secrets.
  • high frontend/src/features/dark-web-monitoring/services/dark-web-http.service.ts:13 — Introduces speculative /dark-web HTTP endpoints for sensitive records before the backend contract exists; define and review the API contract in the backend/shared API layer before hardcoding paths.
  • medium frontend/src/features/dark-web-monitoring/services/index.ts:10 — Module-level feature switch selects a shared mutable mock singleton; avoid global runtime state and inject the data source per page/test or via DI.
  • medium frontend/src/features/dark-web-monitoring/services/dark-web-mock.service.ts:50 — Shared mock service persists status changes in module state; create instances where needed or make the mock read-only to prevent cross-component leakage.
  • medium frontend/src/features/dark-web-monitoring/lib/format.ts:65 — Custom HTML sanitizer is used with dangerouslySetInnerHTML for i18n content; prefer a vetted sanitizer or avoid HTML in translations to reduce XSS surface.
  • low frontend/src/features/dark-web-monitoring/pages/DarkWebMonitoringPage.tsx:100 — Page component mixes UI with client-side filtering, pagination, scroll loading, and export orchestration; extract data/query/export behavior into hooks or service layer.
  • low frontend/src/features/dark-web-monitoring/components/AdvancedExportOptionsDialog.tsx:66 — Dialog reimplements record filtering for export; reuse shared record-query helpers or move export filtering into lib to avoid duplicated query logic.
  • low frontend/src/features/dark-web-monitoring/components/BreachDetailsDrawer.tsx:58 — Drawer couples to FloatingPanel via global DOM query; coordinate open state through context or a shared UI state hook instead of document.querySelector.
  • low frontend/src/features/dark-web-monitoring/lib/record-query.ts:1 — lib depends on a component for resolveTimeBounds; move time bounds/TimeFilter into lib or shared to keep dependency direction clean.
  • low frontend/src/app/styles/index.css:11 — Feature-specific selector is added to global CSS; scope it to the component or use utility classes to avoid global stylesheet coupling.

⚠️ bugs (silas-1.7-pro) — minor findings

Summary: One missing i18n key causes a raw translation key to appear as a CSV export column header; no high/critical bugs found.

  • medium frontend/src/features/dark-web-monitoring/lib/export.ts:25 — EXPORT_HEADERS includes 'compromisedData' (line 25), which is mapped to t('darkWebMonitoring.table.compromisedData') in buildExportRows. However, the key 'compromisedData' is absent from the 'table' object in every locale file (en.json, de.json, es.json, fr.json, it.json, pt.json). The key exists under 'details.compromisedData' but not under 'table'. Reproduce: open the page, click Report → Export to CSV; the 13th column header will display the literal string 'darkWebMonitoring.table.compromisedData' instead of a translated label. Fix: add "compromisedData": "Compromised data" (and localized equivalents) to the 'table' section of each locale file.

🛑 security (silas-1.7-pro) — high/critical — please review

Summary: New dark-web UI touches credential display/export, leaks a demo phone number, and CSV export can be row-split via CR.

  • medium frontend/src/features/dark-web-monitoring/data/demo-records.ts:73 — Customer-facing demo record includes phone number +1-202-555-0148, which is rendered in the UI and exports. Replace with a clearly non-PII placeholder or omit phone values from demo data.
  • low frontend/src/features/dark-web-monitoring/lib/export.ts:37 — csvCell only quotes cells containing double quote, comma, or LF; a CR can split rows and bypass formula neutralization. Include CR in the quoting test and sanitize control characters before export.

🔴 go-deps — pending updates

🔍 Discovered 31 Go projects

📦 Dependencies with updates available:

  📁 ./agent:
     - github.com/threatwinds/go-sdk: v1.1.28 → v1.1.38
     - google.golang.org/grpc: v1.84.0 → v1.85.0

  📁 ./tools/rulecheck:
     - github.com/threatwinds/go-sdk: v1.1.31 → v1.1.38

  📁 ./agent-manager:
     - github.com/threatwinds/go-sdk: v1.1.31 → v1.1.38
     - google.golang.org/grpc: v1.84.0 → v1.85.0

  📁 ./collectors/forwarder:
     - github.com/threatwinds/go-sdk: v1.1.31 → v1.1.38
     - google.golang.org/grpc: v1.84.0 → v1.85.0

  📁 ./collectors/as400:
     - github.com/threatwinds/go-sdk: v1.1.31 → v1.1.38
     - google.golang.org/grpc: v1.84.0 → v1.85.0

  📁 ./collectors/utmstack:
     - github.com/threatwinds/go-sdk: v1.1.31 → v1.1.38
     - google.golang.org/grpc: v1.84.0 → v1.85.0

  📁 ./backend:
     - github.com/aws/aws-sdk-go-v2/config: v1.33.11 → v1.33.12
     - github.com/aws/aws-sdk-go-v2/credentials: v1.20.11 → v1.20.12
     - github.com/aws/aws-sdk-go-v2/service/sts: v1.51.5 → v1.51.6
     - google.golang.org/grpc: v1.84.0 → v1.85.0

  📁 ./plugins/aws:
     - github.com/aws/aws-sdk-go-v2: v1.47.4 → v1.47.5
     - github.com/aws/aws-sdk-go-v2/config: v1.33.11 → v1.33.12
     - github.com/aws/aws-sdk-go-v2/credentials: v1.20.11 → v1.20.12
     - github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs: v1.90.2 → v1.90.3

  📁 ./log-input:
     - google.golang.org/grpc: v1.84.0 → v1.85.0

❌ Please update dependencies before merging.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

AndresTK89 and others added 5 commits October 27, 2026 17:37
@AndresTK89
feat(dark-web-monitoring): add dark web monitoring data handling and …
e2b1e1c
…UI components

- Implemented `useDarkWebData` hook for fetching and managing dark web monitoring records and stats.
- Created `darkWebHttpService` and `darkWebMockService` for API interactions and mock data handling.
- Added CSV and PDF export functionality with `downloadCsv` and `printReportPdf` methods.
- Introduced `FloatingPanel` component for displaying dropdowns and integrated `useFloatingPanel` hook for positioning.
- Updated localization files for multiple languages with new loading and error messages.
@AlexSanchez-bit
Backlog/v12 liveops sceens (#2995)
e683be7
* feat[frontend](liveops): added privilege escalation, ransomware, exfiltration, ransomware, persistence, data exfiltration, defense evasion, privilege escalation,
 generic detection

* feat[frontend](liveops): improved privilege escalation, randomware and outbound animation user and set a default uknow_user
@AndresTK89
Merge upstream/release/v12.0.0 into backlog/darkweb-feature
95867f6
Resolve i18n locale conflicts (de,en,es,fr,it,pt,ru) via semantic 3-way
union: keeps all dark-web keys (nav.darkWebMonitoring, darkWebMonitoring.*)
plus all v12 keys (nav.liveOps, liveOps.*, dataRetention.coldStorage.*).
Re-serialized to 4-space to match v12's locale format.
@AndresTK89
feat(dark-web-monitoring): enhance data handling and UI components fo…
84a37e6
…r improved security and localization
@AndresTK89
feat: enhance time range filtering and record querying
a797462
- Updated `resolveTimeBounds` to collapse unparsed custom bounds to "now" and cap presets at the current moment.
- Introduced `parsePanelDate` for local wall-clock bounds in date-picker.
- Refactored `DarkWebMonitoringPage` to utilize new filtering logic in `record-query.ts`.
- Added `filterRecords` and `paginateRecords` functions for improved record management.
- Adjusted demo organization breach stats to reflect accurate totals.
- Enhanced CSV injection prevention in `neutralizeCsvCell` and added `safeHtml` sanitizer for i18n strings.
- Updated tests to cover new functionality and ensure accurate data representation.
- Improved localization strings for clarity and consistency across multiple languages.
Base automatically changed from release/v12.0.0 to v12 November 4, 2026 13:55

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

6 participants

@AndresTK89 @AlexSanchez-bit @Kbayero @yllada @kryonsx @JocLRojas
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.