Skip to content

ENG-2919: Add Slack cards to evidence components#7657

Merged
galvana merged 30 commits intomainfrom
eng-2919/evidence-slack-cards
Mar 18, 2026
Merged

ENG-2919: Add Slack cards to evidence components#7657
galvana merged 30 commits intomainfrom
eng-2919/evidence-slack-cards

Conversation

@galvana
Copy link
Contributor

@galvana galvana commented Mar 15, 2026

Ticket ENG-2919

Description Of Changes

Adds rendering support for Slack thread evidence (team input) in the evidence drawer. Previously, team input evidence from Slack was not displayed because the TEAM_INPUT evidence type was missing from the filter and there was no card component to render the thread data.

Code Changes

  • Added SlackThreadCard component to render Slack thread evidence with collapsible message list
  • Added TEAM_INPUT to the EvidenceType enum and evidence filter in EvidenceSection.tsx
  • Added SlackMessage, SlackEvidenceData interfaces and data field to EvidenceItem type
  • Added changelog entry

Steps to Confirm

  1. Navigate to an assessment with Slack thread evidence (team input type)
  2. Open the evidence drawer and confirm the Slack thread card renders with channel name, message count, and date
  3. Expand the collapsible message list and verify individual messages show sender, timestamp, and text
  4. Confirm the "View thread in Slack" link opens correctly

Pre-Merge Checklist

  • Issue requirements met
  • All CI pipelines succeeded
  • CHANGELOG.md updated
    • Add a db-migration This indicates that a change includes a database migration label to the entry if your change includes a DB migration
    • Add a high-risk This issue suggests changes that have a high-probability of breaking existing code label to the entry if your change includes a high-risk change (i.e. potential for performance impact or unexpected regression) that should be flagged
    • Updates unreleased work already in Changelog, no new entry necessary
  • UX feedback:
    • All UX related changes have been reviewed by a designer
    • No UX review needed
  • Followup issues:
    • Followup issues created
    • No followup issues
  • Database migrations:
    • Ensure that your downrev is up to date with the latest revision on main
    • Ensure that your downgrade() migration is correct and works
      • If a downgrade migration is not possible for this change, please call this out in the PR description!
    • No migrations
  • Documentation:
    • Documentation complete, PR opened in fidesdocs
    • Documentation issue created in fidesdocs
    • If there are any new client scopes created as part of the pull request, remember to update public-facing documentation that references our scope registry
    • No documentation updates required

Adrian Galvan and others added 5 commits March 12, 2026 14:12
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@galvana galvana requested a review from a team as a code owner March 15, 2026 03:55
@galvana galvana requested review from gilluminate and removed request for a team March 15, 2026 03:55
@vercel
Copy link
Contributor

vercel bot commented Mar 15, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Actions Updated (UTC)
fides-plus-nightly Ignored Ignored Preview Mar 17, 2026 11:47pm
fides-privacy-center Ignored Ignored Mar 17, 2026 11:47pm

Request Review

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Mar 15, 2026

Greptile Summary

This PR adds Slack thread card rendering to the evidence section of privacy assessments. It introduces a new TEAM_INPUT evidence type, new TypeScript interfaces (SlackMessage, SlackEvidenceData), and a SlackThreadCard component that displays Slack channel info, a link to the thread, and a collapsible message list. The EvidenceSection filter is updated to categorize TEAM_INPUT alongside other human-sourced evidence.

  • New SlackThreadCard component renders Slack thread evidence with sender, timestamp, and collapsible messages using Ant Design's Collapse and List
  • EvidenceItem type extended with an optional data field for structured Slack evidence data
  • fundamental_rights_impact_assessment.md appears to be accidentally committed to the repo root — should be removed or relocated

Confidence Score: 3/5

  • The code changes are sound, but an unrelated reference document appears to be accidentally included in the commit.
  • The TypeScript and React changes are well-structured and follow existing patterns. Score is lowered because fundamental_rights_impact_assessment.md appears to be an accidental commit of a reference document to the repository root, which should be addressed before merge.
  • fundamental_rights_impact_assessment.md — likely an accidental commit that should be removed from this PR.

Important Files Changed

Filename Overview
clients/admin-ui/src/features/privacy-assessments/EvidenceCardGroup.tsx Adds SlackThreadCard component for rendering Slack thread evidence with collapsible message list. Uses a hardcoded hex color instead of a palette token.
clients/admin-ui/src/features/privacy-assessments/EvidenceSection.tsx Adds TEAM_INPUT to the humanItems filter so team input evidence is grouped with human-sourced items. Straightforward one-line addition.
clients/admin-ui/src/features/privacy-assessments/types.ts Adds TEAM_INPUT enum value, SlackMessage and SlackEvidenceData interfaces, and an optional data field on EvidenceItem. Clean type additions.
fundamental_rights_impact_assessment.md Reference document about EU AI Act FRIA requirements added to repo root. Appears to be accidentally committed — not related to the Slack card changes.

Last reviewed commit: 40f0b31

Comment on lines +1 to +19
How exactly will the AI be used? (Process & Purpose)
• The Legal Requirement: A description of the deployer's processes in which the high-risk AI system will be used in line with its intended purpose. 
• What it means: You need to document the specific business or operational workflows where the AI will be integrated. If it’s an HR screening tool, what exact stage of the hiring pipeline is it used in, and what decisions is it informing? 
2. What is the timeframe and frequency of use? (Duration)
• The Legal Requirement: A description of the period of time within which, and the frequency with which, each high-risk AI system is intended to be used. 
• What it means: You must outline whether this is a continuous, 24/7 background process, a tool used only during an annual review cycle, or a system deployed for a temporary, six-month pilot program.
3. Who will be subjected to the AI? (Affected Populations)
• The Legal Requirement: The categories of natural persons and groups likely to be affected by its use in the specific context. 
• What it means: You must explicitly identify the demographics the AI will interact with or evaluate. This requires special attention to vulnerable or historically marginalized groups (based on race, age, gender, disability, socioeconomic status, etc.) who might be disproportionately impacted by the system's output. 
4. What are the specific risks to fundamental rights? (Risk Identification)
• The Legal Requirement: The specific risks of harm likely to have an impact on those identified groups, taking into account the technical information provided by the AI developer. 
• What it means: This is the core of the assessment. You must evaluate how the AI might infringe upon rights enshrined in the EU Charter of Fundamental Rights—such as the right to non-discrimination, privacy, human dignity, or access to justice. You must base this on the technical documentation and instructions handed down by the AI provider. 
5. How will humans stay in control? (Human Oversight)
• The Legal Requirement: A description of the implementation of human oversight measures, according to the instructions for use. 
• What it means: You have to prove that the AI is not operating with blind autonomy. You must document exactly who is monitoring the system, what authority they have to override or reverse the AI's decisions, and how they are trained to avoid "automation bias" (the human tendency to blindly trust machine outputs). 
6. What is the emergency plan if things go wrong? (Mitigation & Governance)
• The Legal Requirement: The measures to be taken in the case of the materialization of those risks, including arrangements for internal governance and complaint mechanisms. 
• What it means: If the AI starts discriminating against candidates or making harmful errors, what is your kill switch? You must detail your internal governance protocols for halting the system and outline how affected individuals can submit complaints or challenge the AI's decisions. 
Important Note on FRIA Updates: A FRIA is not a "one-and-done" exercise. You must conduct it before the first use of the system, but the law requires you to update the assessment if any of the underlying facts change (e.g., if you decide to use the AI on a new demographic group, or if the AI provider issues a major update that alters its risk profile). Once completed, the results of the FRIA must be officially submitted to your relevant national market surveillance authority.
Copy link
Contributor

Choose a reason for hiding this comment

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

Accidental file committed to repo root

This reference document appears to have been unintentionally included in the PR. It is not related to the Slack card evidence changes and is sitting at the repository root alongside files like README.md and CHANGELOG.md. Consider removing it from the commit, or if it is intentional, moving it to an appropriate documentation directory.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@galvana galvana requested review from lucanovera and removed request for gilluminate March 15, 2026 04:13
Adrian Galvan and others added 5 commits March 14, 2026 21:14
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Replace hardcoded color, raw <a> tag, and inline styles with
fidesui Link component, palette variables, and SCSS classes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Split SlackThreadCard into a separate component file per frontend
guidelines. Use classNames package for conditional class composition.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use warmer color palette (#1A1F36, #4B5563, #E8EBED), add content
summary display, remove "View thread in Slack" link, add hover
effect with subtle box shadow, and use FIDESUI_NEUTRAL_100 for
message dividers.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
galvana and others added 4 commits March 16, 2026 16:35
Chain the FRIA template migration (baa6792fc3f7) after the resurface
behavior migration (ea20059aee77) to resolve the multiple heads error
that was preventing container startup.
Copy link
Contributor

@lucanovera lucanovera left a comment

Choose a reason for hiding this comment

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

Thank you for tackling the FE changes as well. I've just adjusted a few things to comply with our FE rules. Approved!

galvana and others added 4 commits March 17, 2026 15:39
- Add high-risk AI classification question (fria_1_0)
- Add intended purpose verification to fria_1_2 guidance
- Add DPIA relationship question (fria_1_4)
- Add FRIA review/update process question (fria_6_4)
- Add market surveillance notification question (fria_6_5)
- Add direct vs indirect impact to fria_3_3 guidance

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Base automatically changed from eng-2944/eu-ai-act-fria-template to main March 17, 2026 23:38
@galvana galvana requested a review from a team as a code owner March 17, 2026 23:38
@galvana galvana requested review from JadeCara and removed request for a team March 17, 2026 23:38
@galvana galvana enabled auto-merge March 17, 2026 23:51
@galvana galvana added this pull request to the merge queue Mar 17, 2026
Merged via the queue into main with commit 0459537 Mar 18, 2026
46 checks passed
@galvana galvana deleted the eng-2919/evidence-slack-cards branch March 18, 2026 00:05
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.

2 participants