Repository navigation
feat: implement provider-independent Signalist roadmap - #13
Merged
Merged
Conversation
|
| GitGuardian id | GitGuardian status | Secret | Commit | Filename | |
|---|---|---|---|---|---|
| 38167095 | Triggered | Generic Password | cb29ef8 | docker-compose.prod.yml | View secret |
🛠 Guidelines to remediate hardcoded secrets
- Understand the implications of revoking this secret by investigating where it is used in your code.
- Replace and store your secret safely. Learn here the best practices.
- Revoke and rotate this secret.
- If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.
To avoid such incidents in the future consider
- following these best practices for managing and storing secrets including API keys and other credentials
- install secret detection on pre-commit to catch secret before it leaves your machine and ease remediation.
🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Signalist previously provided RSS reading, categories, bookmarks and authentication. This change implements the remaining provider-independent product flows: privacy controls, article intelligence pipelines, full-text and vector search, sourced Q&A, tags, newsletters, shared workspaces, billing, account connections, bookmark synchronization, social drafts and publishing, Spotlight, and authenticated read-only MCP tools. The English/French landing page now has a confirmed, withdrawable waitlist and describes actual availability.
The user authorized autonomous local implementation and requested that OpenAI setup be deferred.
AGENTS.mdrecords that execution policy while retaining approval requirements for commits, pushes, production changes and live external actions.How
vector(1536)with cosine and full-text indexes. Validate provider output and minimize article text before external processing. Unconfigured AI adapters report their unavailable state; deterministic content flows remain usable.Verification
Local checks completed on 2026-10-13:
make quality RECTOR_FLAGS=--debugpassed: formatting, PHPStan and serial Rectormake tests: 194 tests, 772 assertions passedmake tests-api: 85 scenarios, 641 steps passed20261012001300; the final Q&A migration then applied successfullygit diff --checkpassedThe frontend now loads pages and the authenticated layout on demand. The largest JavaScript chunk fell from 877.09 KB (274.42 KB gzip) to 495.59 KB (163.68 KB gzip); the bundle-size warning is gone. Navigation remains mounted while route content loads. These figures compare the largest emitted chunk, not the aggregate initial download.
Removed unused
behatch/contexts, replacedfriends-of-behat/mink-browserkit-driverwith maintainedbehat/mink-browserkit-driver2.3, and replaced the Laminas HTTP transport with existing Symfony HttpClient. This removes transitivelaminas/laminas-loaderwhile retaining Laminas Feed parsing. Behat prerequisites are now explicit dependencies. Composer removed 11 packages and installed one without upgrading unrelated packages. Normalcomposer auditnow blocks abandoned packages in CI.RSS fetching has a 20-second total duration, three-redirect limit, 4 MiB response limit and private-network protection. Six regression tests cover RSS, Atom, failed HTTP responses, oversized responses, malformed XML and private-network rejection. A live public feed returned 10 articles. API database resets explicitly require a disposable
_testdatabase.Production preview browser checks passed for login, inbox, settings and newsletters against the existing Podman backend. App, Messenger and scheduler container IDs and start times remained unchanged. See follow-up browser evidence.
Risks and follow-up
See roadmap, deployment guide and privacy guidance for detailed status and configuration.
Browser QA subsequently exercised the available local UI flows and fixed quota feedback, login server-detail rendering, check-email markup and the waitlist email label. See browser QA report for evidence and limits.
Commit structure
Eight focused commits separate agent instructions, dependency maintenance, backend workflows, frontend workflows, route splitting, landing pages, runtime/CI configuration and documentation.
CI follow-up fixes
Reset disposable test databases from their actual schema, including migration-created constraint names and unmapped tables. A regression test reproduced the original duplicate-table failure and passes with the fix. Backend quality and all 194 local tests pass.
Rebuild both development and production FrankenPHP binaries from pinned 1.13.0 upstream sources with
golang.org/x/netv0.60.0. Preserve PHP linkage, bundled modules, watcher support, version metadata, Alpine stack settings and bind capability. CI verifies the embedded dependency, PHP runtime and Caddy configuration before the unchanged full Trivy scan. Patched runtime validation and the complete Trivy job passed in CI on the runtime fix.The original eight commits remain intact; three focused fix commits follow them. Local Podman containers were not rebuilt or restarted.
Fresh CI exposed one return-statement indentation issue in the Bluesky bridge. Fixed; local CS Fixer without cache and Rector with cache cleared both pass.