Skip to content

fix: recover bulk-merge integrations - #177

Merged
NPFernando merged 4 commits into
mainfrom
hermes/itops-integrate-all-20260816
Aug 16, 2026
Merged

fix: recover bulk-merge integrations#177
NPFernando merged 4 commits into
mainfrom
hermes/itops-integrate-all-20260816

Conversation

@NPFernando

Copy link
Copy Markdown
Owner

Summary

  • Recover coherent shared UI, TLS/regex, reporting, and page implementations lost during the bulk merge.
  • Preserve later feature pages selectively where they carry required behavior.
  • Reconcile duplicate/stale merge-era test snapshots with the current responsive UI contract.
  • Rename duplicate test definitions so both variants execute instead of one silently shadowing the other.

Verification

  • .venv/bin/python -m pytest -q — passed
  • .venv/bin/python -m ruff check . — passed
  • .venv/bin/python -m compileall -q app.py pages utils — passed
  • .venv/bin/python -m pip check — passed
  • git diff --check — passed
  • Verified every remote branch head is already an ancestor of origin/main.

This PR is intentionally against main from the isolated repair branch; it does not modify main directly.

@socket-security

socket-security Bot commented Aug 16, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedpypi/​qrcode@​8.2100100100100100
Addedpypi/​markdown@​3.10.3100100100100100
Addedpypi/​pyyaml@​6.0.3100100100100100
Addedpypi/​cryptography@​50.0.0100100100100100
Addedpypi/​sqlparse@​0.5.5100100100100100
Addedpypi/​pyotp@​2.10.0100100100100100
Addedpypi/​bcrypt@​5.0.0100100100100100
Addedpypi/​markdownify@​1.2.3100100100100100

View full report

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9bc6224c1b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

# Decimal, not float: at very large magnitudes (e.g. many PB) float's
# binary floating-point representation silently loses precision --
# verified directly, an off-by-billions error with no warning.
count = Decimal(value)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Reject non-finite and unbounded Decimal inputs

Inputs such as NaN now raise decimal.InvalidOperation at the subsequent comparison, while a short value such as 1e999999999 reaches fixed-point formatting and attempts to materialize an enormous string, potentially exhausting the public Streamlit worker. human_to_bytes has the same issue before integer conversion. Validate is_finite() and cap the exponent/magnitude before performing either conversion.

Useful? React with 👍 / 👎.

Comment on lines +40 to +41
key = loader.construct_object(key_node, deep=deep)
if key in mapping:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Convert unhashable YAML keys into validation errors

When YAML contains a complex mapping key such as ? [a, b]\n: value, construct_object produces an unhashable list and if key in mapping raises TypeError, which is not caught by the surrounding except yaml.YAMLError; the converter page therefore crashes instead of returning an invalid-YAML result. The identical copied loader in utils/yaml_formatter.py has the same failure, so centralize the constructor and raise ConstructorError for unsupported keys in both callers.

AGENTS.md reference: AGENTS.md:L21-L21

Useful? React with 👍 / 👎.

)
render_section_heading("Optional triage", eyebrow="Step 3a", heading_level="h3")
render_control_heading("Triage action")
st.caption("Use this after filtering so the summary reflects the items you are actively reviewing.")

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Apply roadmap filters to the AI triage input

After a user applies a query or category filter, this caption promises that triage reflects the items currently under review, but open_items is still derived from board.items and the cached call receives that unfiltered list. Consequently, nonmatching roadmap items are sent to Azure and included in the summary; derive the open-item list from filtered_items or remove the filtering claim.

Useful? React with 👍 / 👎.

@NPFernando
NPFernando merged commit 888163b into main Aug 16, 2026
6 checks passed
@NPFernando
NPFernando deleted the hermes/itops-integrate-all-20260816 branch August 16, 2026 07:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant