Currently, root commits are not showing up as "verified" in the AppView. See example Repo. This is because the Payload produced is incorrect, causing the signature verification to fail. The payload is always including the parent field, even when it should not be present (such as for the root commit).
First, I confirmed the expected Payload, based on the commits to that Repo:
Good commit, verified in UI:
subzidion@mizithra ~/w/ssh-signing (mainline)> git cat-file commit 06f191fa
tree ec947e3dd7a7752d078f1ed0cfde7457b21fef58
parent 048662fa0dbc061740a324028c96773ad8f342b6
author Carl 'Subzidion' Hiltbrunner <git@carl.hiltbrunner.email> 1777700993 -0700
committer Carl 'Subzidion' Hiltbrunner <git@carl.hiltbrunner.email> 1777700993 -0700
gpgsig -----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAg0z270OwauAUjqsiJWwAgrTZlTm
34RukB+S3sMKtZn5UAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5
AAAAQIDHf3FzPh/bOF+5wVavdcCibtG3yDJdgg4DKkmMTeFX4wXW00Zb5ld+aKtazd/0wA
R5c06R/HsYAq4Y6VO4dgc=
-----END SSH SIGNATURE-----
Add hello.txt.
Root commit, not verified in UI (Note, no parent field):
subzidion@mizithra ~/w/ssh-signing (mainline)> git cat-file commit 048662fa
tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
author Carl 'Subzidion' Hiltbrunner <git@carl.hiltbrunner.email> 1777700337 -0700
committer Carl 'Subzidion' Hiltbrunner <git@carl.hiltbrunner.email> 1777700337 -0700
gpgsig -----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAg0z270OwauAUjqsiJWwAgrTZlTm
34RukB+S3sMKtZn5UAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5
AAAAQF/EZB0DWCgjUFt0IPp5QiTEAdVMjkAGTbe44gVGx4uwMyBRygQ+iofrjYZpzZhh77
gs0Nv5fwsV2nVTThpkXQg=
-----END SSH SIGNATURE-----
Initial commit.
Then verified a unit test for a root commit failed. Again, note the presence of the parent in the Payload output:
=== RUN TestPayloadRootCommit
commit_test.go:27: root commit payload must not contain a parent line, got: "parent "
full payload:
tree abc123
parent
author Alice <alice@example.com> 1735732800 +0000
committer Alice <alice@example.com> 1735732800 +0000
Removing parent should cause the Payload to match the one in the signature and produce a Verified commit in the AppView.