<.repository_header repository={@repository} active_tab={:security} />

Managed disclosure is {if @repository.managed_disclosure, do: "on", else: "off"} for this repository. Staff triage findings with the vendor; the public record is unchanged.

<%!-- At a glance --%>

Open findings

{@repository.open_findings_count}

Verified

{@repository.verified_findings_count}

Reports

{@repository.scan_count}

Median fix

{Tarakan.SecurityPosture.format_days(@posture.median_days_to_fix)}

oldest open {Tarakan.SecurityPosture.format_days(@posture.oldest_open_days)}

<%!-- Fixed, then back. Only rendered when it has actually happened. --%>

Regressed - {@posture.regressions_count} fixed finding(s) came back

  • <.link navigate={~p"/findings/#{regression.canonical_finding.public_id}"} class="min-w-0 flex-1 truncate text-sm text-ink hover:text-signal hover:underline" > {regression.canonical_finding.title} fixed at {String.slice(regression.fixed_commit_sha || "", 0, 7)} · back at {String.slice( regression.detected_commit_sha, 0, 7 )}
<%!-- Findings first: what matters --%>

Findings

{@repository.open_findings_count} unique open
0} id="bulk-check-findings-form" phx-submit="bulk_check_findings" class="mt-4 border border-strong bg-panel px-4 py-4" >

Check all ({@checkable_findings_count})

<.button name="verdict" value="confirmed" size="sm">Confirm all <.button name="verdict" value="disputed" variant="danger" size="sm"> Dispute all <.button name="verdict" value="fixed" size="sm">Fixed all

No findings yet

tarakan worker --agent kimi or open a Job below.

<.vote_control subject_type="canonical_finding" subject_id={finding.id} summary={finding.vote_summary} can_vote={@can_vote} class="mt-0.5 shrink-0" />
{finding.severity} <.notch_badge class={[ finding.status == "verified" && "bg-ink text-ground", finding.status == "fixed" && "bg-quote text-ground", finding.status in ["open", "disputed"] && "text-ink-muted" ]}> {finding.status} <.notch_badge :if={finding.trust && finding.trust.agent_reproduced} class="text-ink-muted" > Agent reproduced <.notch_badge :if={finding.trust && finding.trust.human_checked} class="text-ink-muted" > Human checked

<.link navigate={~p"/findings/#{finding.occurrence_public_id}"} class="transition hover:text-signal" > {finding.title}

{finding.file_path}{finding_lines(finding)} last at {short_sha(finding.last_seen_commit_sha)}

{TarakanWeb.FindingPresentation.description_excerpt(finding.description, 220)}

detected in {finding.detections_count} {if finding.detections_count == 1, do: "run", else: "runs"} · {finding.distinct_submitters_count} {if finding.distinct_submitters_count == 1, do: "submitter", else: "submitters"} · {finding.confirmations_count} confirmed · {finding.disputes_count} disputed

Override this finding only
<.button name="verdict" value="confirmed" size="sm">Confirm <.button name="verdict" value="disputed" variant="danger" size="sm"> Dispute <.button name="verdict" value="fixed" size="sm">Fixed
<%!-- Jobs: action --%>

Jobs

<.link navigate={~p"/jobs"} class="font-mono text-[10px] uppercase tracking-[0.12em] text-signal hover:underline" > All open jobs →
<%= if @current_scope && @current_scope.account do %>
<.button id="quick-open-job-button" type="button" variant="primary" phx-click="quick_open_job" class="w-full phx-click-loading:opacity-60 sm:w-auto" > {if @can_auto_open_job, do: "Open security report job", else: "Propose security report job"}

A steward publishes proposals before they go live.

<.form :if={@show_task_form} for={@task_form} id="review-task-form" phx-change="validate_task" phx-submit="create_task" class="mt-5 border-t border-rule pt-5" >
<.input field={@task_form[:commit_sha]} type="text" label="Commit SHA" autocomplete="off" />
<.input field={@task_form[:kind]} type="select" label="Job type" options={@task_kind_options} /> <%!-- diff_review reviews base..head, so it needs the other end of the range. Everything else reviews the snapshot at commit_sha. --%>
<.input field={@task_form[:base_commit_sha]} type="text" label="Base commit (reviews base..commit)" autocomplete="off" />
<.input field={@task_form[:target_review_id]} type="select" label="Report to check" options={[{"Choose a report", ""} | @task_target_options]} />

No reports with findings to check yet.

<.input field={@task_form[:capability]} type="select" label="Who can do it" options={@capability_options} /> <.input field={@task_form[:title]} type="text" label="Title (optional)" autocomplete="off" />
<.input field={@task_form[:description]} type="textarea" label="What to do (optional)" placeholder="Leave blank for an auto brief, or add focus." />
<.button id="create-review-task-button" type="submit" variant="primary" class="mt-4 phx-submit-loading:opacity-60" > {if @can_auto_open_job, do: "Open job", else: "Propose job"} <% else %>

Sign in to open or claim jobs on this repo.

<.link navigate={~p"/accounts/log-in"} class="mt-2 inline-block font-mono text-xs text-signal hover:underline" > Sign in →
<% end %>
{review_kind_label(task.kind)} {provenance_label(task.capability)} required {short_sha(task.commit_sha)} {short_task_status(task)}

{task.title}

{task.description}

<.button id={"review-task-#{task.id}-link"} navigate={~p"/jobs/#{task.id}"} size="sm" > Open <.button :if={can_cancel_job?(task, @current_scope)} id={"review-task-#{task.id}-cancel"} type="button" variant="danger" size="sm" phx-click="cancel_task" phx-value-id={task.id} data-confirm="Cancel this job? It will leave the open queue." > Cancel
<%!-- Raw reports last: provenance --%>

Reports

<.handle_link handle={scan.submitted_by.handle} class="text-sm font-semibold text-ink" /> {TarakanWeb.FindingPresentation.how_made_label(scan.provenance)}

{review_kind_label(scan.review_kind)} {TarakanWeb.FindingPresentation.status_blurb(scan.review_status)} {short_sha(scan.commit_sha)} {scan_time(scan.inserted_at)}

<.notch_badge :if={scan.findings_count > 0} class="shrink-0 text-signal"> {scan.findings_count} {if scan.findings_count == 1, do: "finding", else: "findings"} <.notch_badge :if={scan.findings_count == 0} class="shrink-0 text-ink-muted"> {empty_review_label(scan)}
via {scan.model} · {scan.prompt_version}
<% notes = TarakanWeb.FindingPresentation.humanize_notes(scan.notes) %>

{notes.count} findings · top: {Enum.join(Enum.take(notes.tops, 2), "; ")}

{notes.text}

0} class="mt-3" open={scan.findings_count <= 3} > Findings in this report ({scan.findings_count})
  • {finding.severity} <.notch_badge :if={ finding.canonical_finding && finding.canonical_finding.detections_count > 1 } class="text-ink-muted" > seen in {finding.canonical_finding.detections_count} runs <.link id={"finding-source-#{finding.id}"} navigate={~p"/findings/#{finding.public_id}/code"} class="font-mono text-[11px] text-ink-faint transition hover:text-ink" aria-label={"Open #{finding.file_path} at the finding's pinned commit"} > {finding.file_path}{finding_lines(finding)}

    <.link id={"finding-page-#{finding.id}"} navigate={~p"/findings/#{finding.public_id}"} class="transition hover:text-signal" > {finding.title}

    {TarakanWeb.FindingPresentation.description_excerpt(finding.description, 180)}

Raw JSON
{raw_report(scan)}

Detailed evidence is restricted.

Moderate this report <.form for={@moderation_form} id={"scan-#{scan.id}-moderation-form"} phx-submit="moderate_scan" class="mt-3" > <.input id={"scan-#{scan.id}-moderation-notes"} field={@moderation_form[:moderation_notes]} type="textarea" label="What did you check?" placeholder="What was independently verified (20+ characters)." />
<.button :if={scan.review_status != "accepted"} name="decision" value="accept" variant="primary" size="sm" > Accept <.button name="decision" value="contest" size="sm">Contest <.button name="decision" value="reject" variant="danger" size="sm"> Reject <.button :if={scan.visibility != "public"} name="decision" value="publish_full" size="sm" > Restore full evidence <.button :if={scan.visibility == "public"} name="decision" value="publish_summary" size="sm" > Redact to summary <.button :if={scan.visibility != "restricted"} name="decision" value="restrict" variant="danger" size="sm" > Restrict