Skip to content

feat: show Record Origin under the Snapchat conversation bubble - #1091

Merged
abrignoni merged 1 commit into
mainfrom
feat/snapchat-arroyo-extracolumn
Aug 10, 2026
Merged

feat: show Record Origin under the Snapchat conversation bubble#1091
abrignoni merged 1 commit into
mainfrom
feat/snapchat-arroyo-extracolumn

Conversation

@abrignoni

Copy link
Copy Markdown
Owner

One line on the arroyo.db messages conversation view:

"extraColumns": ["Record Origin"],

Every bubble now carries Live or Recovered without the examiner having to know the column picker exists. That closes the last gap from #1053: the provenance was visible in the table and invisible in the chat view, which is exactly where a recovered row could be misread as a live message.

Record Origin alone rather than all three. It is populated on every row, so every bubble gets a marker, while Recovery Method and Recovery Location stay one click away in the picker and would only add noise under a live message.

Dependency

Needs LAVA PR #166 (feat/convo-extras), which introduces extraColumns. It is not on LAVA main yet. Alexis confirmed shipping ahead of that merge is fine.

Verified, not assumed

An unrecognised declarative option fails open silently, so this got checked properly rather than eyeballed:

check result
does the literal exist in the consumer? yes, conversationExtras.js:104, conversationParams?.extraColumns
is it on LAVA main? no, PR #166 only
James's resolver against this artifact's real manifest "Record Origin"record_origin, a real column in the artifact table
current LAVA main against the same manifest array coerces to a string via JS key lookup, nothing reads it, no throw, all required layout fields still resolve
tolerant to either spelling? yes: display "Record Origin" and sanitized "record_origin" both resolve, so it survives lavafuncs later sanitizing this key like the others
collides with a layout column? no, and the view ignores those anyway

So the field is inert rather than harmful on current LAVA, and correct once #166 lands.

Worth noting for James: lavafuncs sanitizes the other data_views column values to snake_case before writing the manifest but passes extraColumns through as the display name. It works because the resolver checks the reverse map first, and it keeps working if that changes, but the asymmetry is there.

Validation

Corpus hc_pixel8pro_a17: 16 message rows and 5 conversation rows, unchanged. 765 plugins load with no duplicate names. check_claim_language.py clean, check_html_safety.py clean, pylint 10.00/10, lint_changed.py no new warnings.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

Declares extraColumns on the arroyo.db messages conversation view, so every
bubble carries Live or Recovered without the examiner having to know the
column picker exists. That closes the last gap from #1053: the provenance
was visible in the table and invisible in the chat view, which is exactly
where a recovered row could be misread as a live message.

Record Origin alone rather than all three. It is populated on every row, so
every bubble gets a marker, while Recovery Method and Recovery Location stay
one click away in the picker and would only add noise under a live message.

Depends on LAVA PR #166 (feat/convo-extras), which introduces the field.
Alexis confirmed shipping ahead of that merge is fine.

Verified rather than assumed, since an unrecognised declarative option fails
open silently:

  - The literal `extraColumns` exists in the consumer, read at
    conversationExtras.js:104. It is not on LAVA main yet.
  - Ran James's actual resolver against the manifest this artifact produces:
    "Record Origin" resolves to `record_origin`, a real column in the
    artifact table.
  - Ran current LAVA main's translation logic against the same manifest.
    The array coerces to a string via JS key lookup, nothing reads it, no
    throw, and all required layout fields still resolve. So the field is
    inert rather than harmful until #166 lands.
  - The resolver is tolerant either way: display name "Record Origin" and
    sanitized "record_origin" both resolve correctly, so it keeps working if
    lavafuncs later learns to sanitize this key like the others.
  - Record Origin is not one of the layout columns, which the view ignores.

Counts unchanged: 16 message rows, 5 conversation rows on hc_pixel8pro_a17.
765 plugins load with no duplicate names.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@abrignoni
abrignoni merged commit a154cd1 into main Aug 10, 2026
4 checks passed
@abrignoni
abrignoni deleted the feat/snapchat-arroyo-extracolumn branch August 10, 2026 22:32
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