<feed xmlns='http://www.w3.org/2005/Atom'>
<title>webmentions-ssg/webmentions_ssg/tasks/scanner.py, branch main</title>
<subtitle>A web service that implements webmentions receiver/sender for static site generators.</subtitle>
<id>https://git.dennisfink.me/webmentions-ssg/atom/webmentions_ssg/tasks/scanner.py?h=main</id>
<link rel='self' href='https://git.dennisfink.me/webmentions-ssg/atom/webmentions_ssg/tasks/scanner.py?h=main'/>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/webmentions-ssg/'/>
<updated>2026-08-21T08:37:56Z</updated>
<entry>
<title>test(core): align tests with module ownership</title>
<updated>2026-08-21T08:37:56Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-08-21T08:37:56Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/webmentions-ssg/commit/?id=c5492398f100ccb154fa557d657bae2322f95cf7'/>
<id>urn:sha1:c5492398f100ccb154fa557d657bae2322f95cf7</id>
<content type='text'>
Move direct validator, model, and Huey extension coverage into dedicated
test modules and mock dependencies where behavior belongs to another
module.

Expand Huey extension typing and coverage while removing duplicate
assertions from scanner, sender, form, and view tests.
</content>
</entry>
<entry>
<title>chore(core): standardize SPDX copyright headers</title>
<updated>2026-08-20T20:22:15Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-08-20T20:22:15Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/webmentions-ssg/commit/?id=12b8c4b7f1d14556cc459f672b501e901da2d216'/>
<id>urn:sha1:12b8c4b7f1d14556cc459f672b501e901da2d216</id>
<content type='text'>
Add SPDX copyright and license headers to source, test, migration,
template, and static files throughout the project.

Include the maintainer email in copyright notices and fill in the BSD
license copyright holder.
</content>
</entry>
<entry>
<title>refactor(core): improve typing and test coverage</title>
<updated>2026-08-19T17:49:55Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-08-19T17:49:55Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/webmentions-ssg/commit/?id=d0e245d63e014d268310976fc45429f08d2cbbe9'/>
<id>urn:sha1:d0e245d63e014d268310976fc45429f08d2cbbe9</id>
<content type='text'>
Restructure database and user CLI commands, make passwords write-only
model properties, and use the UTC datetime constant throughout the
application.

Add PEP 287-style documentation and expand receiver, scanner, sender,
and URL security tests to cover error paths and edge cases.
</content>
</entry>
<entry>
<title>feat(sender): add manual source rescan action</title>
<updated>2026-08-17T18:06:22Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-08-17T18:06:22Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/webmentions-ssg/commit/?id=d4a03623544aac0ce911d8471ff4b033bc3255e1'/>
<id>urn:sha1:d4a03623544aac0ce911d8471ff4b033bc3255e1</id>
<content type='text'>
Add an authenticated action to queue a source rescan from the sent
Webmentions overview.

Extract the reusable confirmation modal and its JavaScript so received
and sent admin actions share the same implementation.
</content>
</entry>
<entry>
<title>feat(sender): add outgoing Webmention pipeline</title>
<updated>2026-08-15T18:54:53Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-08-15T18:54:53Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/webmentions-ssg/commit/?id=e0f65d7ff582b32f1c7b5508bba8cda807aaae5f'/>
<id>urn:sha1:e0f65d7ff582b32f1c7b5508bba8cda807aaae5f</id>
<content type='text'>
Scan generated h-entry documents for Webmention targets and track source
revisions and delivery state in the database.

Discover target endpoints, send Webmentions asynchronously, and reconcile
updated, removed, restored, and deleted sources across scans.

Add authenticated views for inspecting sent Webmentions and make the scanner
schedule configurable.
</content>
</entry>
</feed>
