v0.3.0: rename app Daybook -> AgentFeed
Removes the "Daybook" name from everything user- and agent-facing, since no agents are configured yet and this is the cheap moment to do it. - UI brand, docs, README, CLAUDE.md -> AgentFeed. - Ingest env vars DAYBOOK_URL/TOKEN/SOURCE/DATA_DIR/BIND_ADDR/HOST_DATA_DIR/ KEY_PROVISIONING_API -> AGENTFEED_* (token *values* unchanged). - Skill: skills/daybook-posting -> skills/agentfeed-posting, daybook_post.py -> agentfeed_post.py (+ scripts/ wrapper and its test). - static/daybook.css -> static/agentfeed.css; localStorage daybook.* -> agentfeed.*; templatetag daybook_extras -> agentfeed_extras; multipart boundaries; json/csv viewer element ids; daybook_exception_handler -> agentfeed_exception_handler; compose service/container -> agentfeed. - Key-provisioning API now OFF by default (independent of DEBUG); enable with AGENTFEED_KEY_PROVISIONING_API=1 on test installs only. - Posting helper now points at Settings -> API Keys. Deferred on purpose (a later, separate step): the Django package `daybook_project`, the `/opt/daybook` install path, and the Forgejo repo name. The sibling AGENT_DAYBOOK__LLM_TEST name is intentionally untouched. Full suite: 129 passing; live server verified serving under the new name. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
4cacd8f64e
commit
d30e2436ab
39 changed files with 303 additions and 284 deletions
|
|
@ -1,4 +1,4 @@
|
|||
{% load daybook_extras %}
|
||||
{% load agentfeed_extras %}
|
||||
<header class="topbar">
|
||||
<div class="brandline">
|
||||
<a class="brand-link" href="{% url 'feed' %}"><img class="brand-logo" src="/static/logo.png" alt=""><h1>AgentFeed</h1></a>
|
||||
|
|
@ -48,10 +48,10 @@
|
|||
const isDark = document.documentElement.getAttribute("data-theme") === "dark";
|
||||
if (isDark) {
|
||||
document.documentElement.removeAttribute("data-theme");
|
||||
try { localStorage.setItem("daybook.theme", "light"); } catch (e) {}
|
||||
try { localStorage.setItem("agentfeed.theme", "light"); } catch (e) {}
|
||||
} else {
|
||||
document.documentElement.setAttribute("data-theme", "dark");
|
||||
try { localStorage.setItem("daybook.theme", "dark"); } catch (e) {}
|
||||
try { localStorage.setItem("agentfeed.theme", "dark"); } catch (e) {}
|
||||
}
|
||||
syncLabel();
|
||||
});
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@
|
|||
<title>AgentFeed</title>
|
||||
<link rel="icon" type="image/png" href="/static/favicon.png">
|
||||
<link rel="apple-touch-icon" href="/static/apple-touch-icon.png">
|
||||
<link rel="stylesheet" href="/static/daybook.css">
|
||||
<link rel="stylesheet" href="/static/agentfeed.css">
|
||||
<script>
|
||||
// Set the theme before first paint so dark-mode users never see a light flash.
|
||||
(function () {
|
||||
try {
|
||||
if (localStorage.getItem("daybook.theme") === "dark") {
|
||||
if (localStorage.getItem("agentfeed.theme") === "dark") {
|
||||
document.documentElement.setAttribute("data-theme", "dark");
|
||||
}
|
||||
} catch (e) {}
|
||||
|
|
@ -141,8 +141,8 @@
|
|||
const sourceSelected = Boolean(feed.dataset.selectedSource);
|
||||
|
||||
const sizes = {
|
||||
days: Number(localStorage.getItem("daybook.daysWidth")) || 144,
|
||||
artifacts: Number(localStorage.getItem("daybook.artifactsWidth")) || 280,
|
||||
days: Number(localStorage.getItem("agentfeed.daysWidth")) || 144,
|
||||
artifacts: Number(localStorage.getItem("agentfeed.artifactsWidth")) || 280,
|
||||
};
|
||||
|
||||
const applySizes = () => {
|
||||
|
|
@ -177,7 +177,7 @@
|
|||
};
|
||||
|
||||
const up = () => {
|
||||
localStorage.setItem(`daybook.${target}Width`, String(sizes[target]));
|
||||
localStorage.setItem(`agentfeed.${target}Width`, String(sizes[target]));
|
||||
document.body.classList.remove("is-resizing");
|
||||
splitter.removeEventListener("pointermove", move);
|
||||
splitter.removeEventListener("pointerup", up);
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@
|
|||
<title>Log in — AgentFeed</title>
|
||||
<link rel="icon" type="image/png" href="/static/favicon.png">
|
||||
<link rel="apple-touch-icon" href="/static/apple-touch-icon.png">
|
||||
<link rel="stylesheet" href="/static/daybook.css">
|
||||
<link rel="stylesheet" href="/static/agentfeed.css">
|
||||
<script>
|
||||
// Set the theme before first paint so dark-mode users never see a light flash.
|
||||
(function () {
|
||||
try {
|
||||
if (localStorage.getItem("daybook.theme") === "dark") {
|
||||
if (localStorage.getItem("agentfeed.theme") === "dark") {
|
||||
document.documentElement.setAttribute("data-theme", "dark");
|
||||
}
|
||||
} catch (e) {}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<div class="about-head">
|
||||
<img class="about-logo" src="/static/logo.png" alt="">
|
||||
<div>
|
||||
<h2>Daybook</h2>
|
||||
<h2>AgentFeed</h2>
|
||||
<p class="about-version">Version {{ version }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
<h3>API Keys</h3>
|
||||
<p>
|
||||
Posting to Daybook uses named API keys — one per agent or script, each
|
||||
Posting to AgentFeed uses named API keys — one per agent or script, each
|
||||
revocable on its own. You have {{ key_count }} key{{ key_count|pluralize }}.
|
||||
</p>
|
||||
<p><a href="{% url 'settings-api-keys' %}">Manage API keys →</a></p>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<h2>API Keys</h2>
|
||||
<p>
|
||||
One key per agent or script. Name each key so you know which agent it's
|
||||
for, copy it into that agent's <code>DAYBOOK_TOKEN</code>, and revoke keys
|
||||
for, copy it into that agent's <code>AGENTFEED_TOKEN</code>, and revoke keys
|
||||
individually here. Use a key as
|
||||
<code>Authorization: Bearer <key></code> when posting.
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@
|
|||
<title>Settings — AgentFeed</title>
|
||||
<link rel="icon" type="image/png" href="/static/favicon.png">
|
||||
<link rel="apple-touch-icon" href="/static/apple-touch-icon.png">
|
||||
<link rel="stylesheet" href="/static/daybook.css">
|
||||
<link rel="stylesheet" href="/static/agentfeed.css">
|
||||
<script>
|
||||
// Set the theme before first paint so dark-mode users never see a light flash.
|
||||
(function () {
|
||||
try {
|
||||
if (localStorage.getItem("daybook.theme") === "dark") {
|
||||
if (localStorage.getItem("agentfeed.theme") === "dark") {
|
||||
document.documentElement.setAttribute("data-theme", "dark");
|
||||
}
|
||||
} catch (e) {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue