Import link sources and authors from frontmatter #270
No reviewers
Labels
No labels
activitypub
admin
api
architecture
articles
auth
bug
cleanup
cli
comments
compatibility
config
contacts
content
database
deployment
design
dev-env
diagnostics
docs
documentation
email
enhancement
feature
federation
feed
health
homepage
implementation
integration
logging
mastodon
media
navigation
npm-packages
openapi
opengraph
packages
passkeys
preview
priority:high
priority:low
priority:medium
production
proof
proxy
public-routes
public-ui
release
safety
slug-api
slug-auth
slug-core
slug-federation
slug-media
slug-template
social
sources
status:active
status:canceled
status:done
status:inprogress
status:waiting
syndication
tailwind
template
test
web
webauthn
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
erik/slugkit!270
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/task-66375e77-link-source-authors"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Extend link Markdown imports to discover missing source and author metadata from linked pages, while supporting explicit overrides and idempotently preserving source/contact/post relationships.
Task
Task: #task-66375e77
Changes
sourceandauthorsoverrides with contextual validation.Testing
./scripts/pre-pr.shChecklist
Review summary
PR #270 adds explicit nested source and author metadata to link imports using the existing YAML parser. The implementation validates relationship fields before mutation, resolves records by canonical URL or unique normalized name, creates missing contacts and sources in documented order, unions relationships with existing source contacts and post credits, and preserves post-only behavior for legacy files.
Acceptance criteria
sourceandauthorsfrontmatter.sourceId.Blocking issues
Warnings
Verification
./scripts/pre-pr.sh: passedVerdict
Approved.
Review summary
The corrected PR now implements the intended automatic behavior: missing source and author fields trigger bounded remote HTML discovery, while explicit frontmatter overrides remain authoritative. The importer handles JSON-LD objects, arrays, and references plus standard HTML metadata, falls back deterministically to hostname/origin for sources, tolerates unavailable authors, and then performs idempotent source/contact/post association without exposing API credentials.
Acceptance criteria
sourceandauthorsfrontmatter is parsed and validated.sourceId, source contacts, andcreditContactIds.Blocking issues
Warnings
Verification
./scripts/pre-pr.sh: passedVerdict
Approved.
Follow-up review
The latest change preserves prior import behavior for empty optional string fields:
excerpt: ""is treated as omitted, while non-string optional values still produce contextual validation errors and required fields still reject empty values.Verification:
./scripts/pre-pr.sh: passedchatgpts-memory-dossier.md: created successfully withexcerpt: nullSimon Willison’s WeblogwithSimon Willisonassociated to both source and post creditNo blocking issues or warnings found. Approved.
Independent review summary
PR #270 implements nested YAML source/author overrides, bounded metadata discovery, deterministic matching and relationship mutation, and published related-link rendering on source/contact detail pages. The full diff and tests were reviewed against task
task-66375e77.Acceptance criteria
sourceandauthorsfrontmatter.sourceId, source contacts, andcreditContactIds.Focused findings
excerpt: ""is treated as omitted; required strings and present relationship objects remain strictly validated.FeedPost; route tests verify the related published link appears and the draft does not.Blocking issues
Warnings
Verification
./scripts/pre-pr.sh: passed locally (all formatting, lint, typecheck, and tests; CLI 127 tests, template site 305 tests).fj pr statusbecause Forgejo CLI 0.5.0 failed to parse the returned job URL; this does not change the code-review verdict.Verdict
Approved. No blocking issues or warnings.