Download links for the plugin
Build LinkLog Development Image / development-image (push) Successful in 10s
Build LinkLog Development Image / development-image (push) Successful in 10s
This commit is contained in:
@@ -1,5 +1,17 @@
|
|||||||
# Chat Log
|
# Chat Log
|
||||||
|
|
||||||
|
### User
|
||||||
|
In the Profile page below the Save profile button add “If you have not downloaded the plugin yet find it here” with a link to the signed plugin.
|
||||||
|
|
||||||
|
### Assistant outcome
|
||||||
|
Added the plugin download prompt immediately below the Save profile button, linking “find it here” to the signed `LinkLog-0.1.0.xpi` artifact. Added profile-page regression assertions and recorded the change in VIBE.
|
||||||
|
|
||||||
|
### User
|
||||||
|
Add a Plugin section to the About page with a download link to the signed XPI file.
|
||||||
|
|
||||||
|
### Assistant outcome
|
||||||
|
Added a Plugin section to the About page with a download link for the signed `LinkLog-0.1.0.xpi` artifact hosted on the repository's raw main branch. Added a page-rendering regression assertion.
|
||||||
|
|
||||||
### User
|
### User
|
||||||
The Firefox plugin tests report that `strict_min_version` 112 is too low for `data_collection_permissions`, `storage.session`, and `permissions.request`.
|
The Firefox plugin tests report that `strict_min_version` 112 is too low for `data_collection_permissions`, `storage.session`, and `permissions.request`.
|
||||||
|
|
||||||
|
|||||||
@@ -204,6 +204,8 @@
|
|||||||
197. Implement SA-002: replace raw infrastructure errors with redacted server-side logging, request IDs, and stable public reference messages.
|
197. Implement SA-002: replace raw infrastructure errors with redacted server-side logging, request IDs, and stable public reference messages.
|
||||||
198. Implement SA-005: reject missing/default/weak production secrets at startup and validate the Fernet encryption key, with configuration tests.
|
198. Implement SA-005: reject missing/default/weak production secrets at startup and validate the Fernet encryption key, with configuration tests.
|
||||||
199. Fix Firefox manifest compatibility warnings by aligning the minimum version with data collection permissions and session storage support.
|
199. Fix Firefox manifest compatibility warnings by aligning the minimum version with data collection permissions and session storage support.
|
||||||
|
200. Add a Plugin section to the About page with a download link to the signed XPI file.
|
||||||
|
201. Below the Save profile button, add a link to download the signed plugin if it has not been downloaded yet.
|
||||||
|
|
||||||
## Future entries
|
## Future entries
|
||||||
|
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ app.include_router(user_config_router, prefix='/api/user')
|
|||||||
app.include_router(setup_router, prefix='/api/setup')
|
app.include_router(setup_router, prefix='/api/setup')
|
||||||
|
|
||||||
templates = Jinja2Templates(directory='frontend/templates')
|
templates = Jinja2Templates(directory='frontend/templates')
|
||||||
|
templates.env.globals['app_version'] = settings.version
|
||||||
|
|
||||||
|
|
||||||
@app.get('/', response_class=HTMLResponse)
|
@app.get('/', response_class=HTMLResponse)
|
||||||
|
|||||||
@@ -727,6 +727,8 @@ def test_public_and_admin_pages_render_html():
|
|||||||
about_page = client.get('/about')
|
about_page = client.get('/about')
|
||||||
assert about_page.status_code == 200
|
assert about_page.status_code == 200
|
||||||
assert 'Save the good stuff' in about_page.text
|
assert 'Save the good stuff' in about_page.text
|
||||||
|
assert '<h2>Plugin</h2>' in about_page.text
|
||||||
|
assert 'https://git.kolkman.org/olaf/Link-Log/raw/branch/main/XPI/signed/LinkLog-0.1.0.xpi' in about_page.text
|
||||||
assert 'id="auth-about-link" href="/about"' in about_page.text
|
assert 'id="auth-about-link" href="/about"' in about_page.text
|
||||||
assert client.get('/admin').status_code == 200
|
assert client.get('/admin').status_code == 200
|
||||||
admin_page = client.get('/admin').text
|
admin_page = client.get('/admin').text
|
||||||
|
|||||||
@@ -51,6 +51,8 @@ def test_user_config_api_and_profile_page():
|
|||||||
assert 'id="auth-avatar"' not in page_response.text
|
assert 'id="auth-avatar"' not in page_response.text
|
||||||
assert 'name="new_password_confirmation"' in page_response.text
|
assert 'name="new_password_confirmation"' in page_response.text
|
||||||
assert 'id="additional-email-form"' in page_response.text
|
assert 'id="additional-email-form"' in page_response.text
|
||||||
|
assert 'If you have not downloaded the plugin yet' in page_response.text
|
||||||
|
assert 'https://git.kolkman.org/olaf/Link-Log/raw/branch/main/XPI/signed/LinkLog-0.1.0.xpi' in page_response.text
|
||||||
|
|
||||||
bob_login = client.post('/api/auth/login', json={
|
bob_login = client.post('/api/auth/login', json={
|
||||||
'email': 'bob@example.com',
|
'email': 'bob@example.com',
|
||||||
|
|||||||
@@ -52,8 +52,14 @@
|
|||||||
<p>LinkLog is open source software. You can run your own instance, or contribute to the project on
|
<p>LinkLog is open source software. You can run your own instance, or contribute to the project on
|
||||||
<a href="https://git.kolkman.org/olaf/Link-Log">my repository</a>.</p>
|
<a href="https://git.kolkman.org/olaf/Link-Log">my repository</a>.</p>
|
||||||
</section>
|
</section>
|
||||||
|
<section class="link-item">
|
||||||
|
<h2>Plugin</h2>
|
||||||
|
<p>Install the Firefox plugin to save links directly from your browser. <a
|
||||||
|
href="https://git.kolkman.org/olaf/Link-Log/raw/branch/main/XPI/signed/LinkLog-0.1.0.xpi"
|
||||||
|
download>Download and install the Plugin</a>.</p>
|
||||||
|
</section>
|
||||||
</main>
|
</main>
|
||||||
<footer class="site-footer">Copyright © 2026 Olaf Kolkman · <a href="https://git.kolkman.org/olaf/Link-Log">git.kolkman.org/LinkLog</a></footer>
|
<footer class="site-footer">LinkLog Version {{ app_version }}. Copyright © 2026 Olaf Kolkman · <a href="https://git.kolkman.org/olaf/Link-Log">git.kolkman.org/LinkLog</a></footer>
|
||||||
<script src="/static/auth-header.js?v=3"></script>
|
<script src="/static/auth-header.js?v=3"></script>
|
||||||
<script src="/static/logout.js?v=3"></script>
|
<script src="/static/logout.js?v=3"></script>
|
||||||
<script src="/static/theme.js?v=1"></script>
|
<script src="/static/theme.js?v=1"></script>
|
||||||
|
|||||||
@@ -115,7 +115,7 @@
|
|||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<footer class="site-footer">Copyright © 2026 Olaf Kolkman · <a href="https://git.kolkman.org/olaf/Link-Log">git.kolkman.org/LinkLog</a></footer>
|
<footer class="site-footer">LinkLog Version {{ app_version }}. Copyright © 2026 Olaf Kolkman · <a href="https://git.kolkman.org/olaf/Link-Log">git.kolkman.org/LinkLog</a></footer>
|
||||||
<script src="/static/auth-header.js?v=3"></script>
|
<script src="/static/auth-header.js?v=3"></script>
|
||||||
<script src="/static/logout.js?v=2"></script>
|
<script src="/static/logout.js?v=2"></script>
|
||||||
<script src="/static/theme.js?v=1"></script>
|
<script src="/static/theme.js?v=1"></script>
|
||||||
|
|||||||
@@ -76,7 +76,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
<section id="feed" class="feed" aria-live="polite"></section>
|
<section id="feed" class="feed" aria-live="polite"></section>
|
||||||
</main>
|
</main>
|
||||||
<footer class="site-footer">Copyright © 2026 Olaf Kolkman · <a href="https://git.kolkman.org/olaf/Link-Log">git.kolkman.org/LinkLog</a></footer>
|
<footer class="site-footer">LinkLog Version {{ app_version }}. Copyright © 2026 Olaf Kolkman · <a href="https://git.kolkman.org/olaf/Link-Log">git.kolkman.org/LinkLog</a></footer>
|
||||||
|
|
||||||
<script src="/static/auth-header.js?v=3"></script>
|
<script src="/static/auth-header.js?v=3"></script>
|
||||||
<script src="/static/logout.js?v=3"></script>
|
<script src="/static/logout.js?v=3"></script>
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
<div id="label-list" class="plugin-list"></div>
|
<div id="label-list" class="plugin-list"></div>
|
||||||
</section>
|
</section>
|
||||||
</main>
|
</main>
|
||||||
<footer class="site-footer">Copyright © 2026 Olaf Kolkman · <a href="https://git.kolkman.org/olaf/Link-Log">git.kolkman.org/LinkLog</a></footer>
|
<footer class="site-footer">LinkLog Version {{ app_version }}. Copyright © 2026 Olaf Kolkman · <a href="https://git.kolkman.org/olaf/Link-Log">git.kolkman.org/LinkLog</a></footer>
|
||||||
<script src="/static/auth-header.js?v=3"></script>
|
<script src="/static/auth-header.js?v=3"></script>
|
||||||
<script src="/static/logout.js?v=3"></script>
|
<script src="/static/logout.js?v=3"></script>
|
||||||
<script src="/static/theme.js?v=1"></script>
|
<script src="/static/theme.js?v=1"></script>
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
</form>
|
</form>
|
||||||
</section>
|
</section>
|
||||||
</main>
|
</main>
|
||||||
<footer class="site-footer">Copyright © 2026 Olaf Kolkman · <a href="https://git.kolkman.org/olaf/Link-Log">git.kolkman.org/LinkLog</a></footer>
|
<footer class="site-footer">LinkLog Version {{ app_version }}. Copyright © 2026 Olaf Kolkman · <a href="https://git.kolkman.org/olaf/Link-Log">git.kolkman.org/LinkLog</a></footer>
|
||||||
<script src="/static/auth-header.js?v=3"></script>
|
<script src="/static/auth-header.js?v=3"></script>
|
||||||
<script src="/static/logout.js?v=3"></script>
|
<script src="/static/logout.js?v=3"></script>
|
||||||
<script src="/static/theme.js?v=1"></script>
|
<script src="/static/theme.js?v=1"></script>
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
</form>
|
</form>
|
||||||
</section>
|
</section>
|
||||||
</main>
|
</main>
|
||||||
<footer class="site-footer">Copyright © 2026 Olaf Kolkman</footer>
|
<footer class="site-footer">LinkLog Version {{ app_version }}. Copyright © 2026 Olaf Kolkman</footer>
|
||||||
<script src="/static/theme.js?v=1"></script>
|
<script src="/static/theme.js?v=1"></script>
|
||||||
<script src="/static/setup.js"></script>
|
<script src="/static/setup.js"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -59,6 +59,7 @@
|
|||||||
</label>
|
</label>
|
||||||
<img id="avatar-preview" class="profile-avatar-preview hidden" alt="Avatar preview" />
|
<img id="avatar-preview" class="profile-avatar-preview hidden" alt="Avatar preview" />
|
||||||
<button type="submit">Save profile</button>
|
<button type="submit">Save profile</button>
|
||||||
|
<p>If you have not downloaded the plugin yet, <a href="https://git.kolkman.org/olaf/Link-Log/raw/branch/main/XPI/signed/LinkLog-0.1.0.xpi" download>find it here</a>.</p>
|
||||||
<p id="profile-status" class="status" role="status"></p>
|
<p id="profile-status" class="status" role="status"></p>
|
||||||
</form>
|
</form>
|
||||||
</section>
|
</section>
|
||||||
@@ -144,7 +145,7 @@
|
|||||||
</form>
|
</form>
|
||||||
</section>
|
</section>
|
||||||
</main>
|
</main>
|
||||||
<footer class="site-footer">Copyright © 2026 Olaf Kolkman · <a
|
<footer class="site-footer">LinkLog Version {{ app_version }}. Copyright © 2026 Olaf Kolkman · <a
|
||||||
href="https://git.kolkman.org/olaf/Link-Log">git.kolkman.org/LinkLog</a></footer>
|
href="https://git.kolkman.org/olaf/Link-Log">git.kolkman.org/LinkLog</a></footer>
|
||||||
<script src="/static/auth-header.js?v=3"></script>
|
<script src="/static/auth-header.js?v=3"></script>
|
||||||
<script src="/static/logout.js?v=2"></script>
|
<script src="/static/logout.js?v=2"></script>
|
||||||
|
|||||||
Reference in New Issue
Block a user