Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@profullstack/agenticjobs",
"version": "0.22.6",
"version": "0.22.7",
"description": "An agent-friendly job board you self-host. It posts its own jobs, never scrapes anyone else's, and answers on every surface: web, API, MCP, CLI, TUI, desktop and PWA. Instances find each other through an open directory.",
"license": "MIT",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ export function loadConfig(env: NodeJS.ProcessEnv = process.env): Config {
}

/** Kept in step with package.json by the release script. */
export const VERSION = '0.22.6';
export const VERSION = '0.22.7';
export const SOFTWARE_NAME = 'agenticjobs';

/**
Expand Down
12 changes: 9 additions & 3 deletions src/views/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { renderMarkdown } from '../markup/markdown.ts';
import type { SkillCount } from '../core/skills.ts';
import { pathForQuery } from '../core/landing.ts';
import { EMPTY_QUERY } from '../schema/query.ts';
import { pfsFooter } from './pfs-footer.ts';
import { pitFooter } from './pit-footer.ts';
import { AdUnit, showsAd } from './ad-unit.tsx';

Expand Down Expand Up @@ -284,16 +285,21 @@ export const Layout: FC<PropsWithChildren<PageProps>> = (props) => {
</div>
)}
<div class="container footer-links">
<span>
&copy; {new Date().getFullYear()} {boardName}
</span>
<a href="/popular">Popular</a>
<a href="/agents">Agents</a>
<a href="/docs">API</a>
<a href="/jobs.json">Feed</a>
<a href="https://github.com/profullstack/agenticjobs">Source</a>
</div>
</footer>
{/* Copyright and the Profullstack webring: @profullstack/footer. */}
{raw(
pfsFooter({
site: `${publicUrl.replace(/\/+$/, '')}/`,
links: [],
tagline: `${boardName} runs on agenticjobs, MIT licensed.`,
}),
)}
<script src="/assets/app.js" defer></script>
{/*
* CrawlProof, as a plain tag. `defer` is what `strategy` meant on the
Expand Down
23 changes: 23 additions & 0 deletions src/views/pfs-footer.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/**
* The shared Profullstack footer (@profullstack/footer): the board's link row,
* the copyright line and the webring, from the package's @latest template, so a
* release of the package reaches every board without a redeploy.
*
* Layout renders synchronously (pages and tests stringify it directly), so this
* returns the last footer rendered for these options and refreshes it in the
* background on each use; the package caches the template for an hour. Until
* the first refresh lands it is the template from the installed package.
*/
import { footerHtml, footerHtmlSync } from '@profullstack/footer';

type FooterOptions = Parameters<typeof footerHtmlSync>[0];

const rendered = new Map<string, string>();

export function pfsFooter(options: FooterOptions): string {
const key = JSON.stringify(options);
void footerHtml(options)
.then((html) => rendered.set(key, html))
.catch(() => undefined);
return rendered.get(key) ?? footerHtmlSync(options);
}
8 changes: 7 additions & 1 deletion web/public/app.css
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,13 @@ main {
color: var(--muted-foreground);
}

/* Two rows: the popular skills, then the copyright and the links people use. */
/* The shared Profullstack footer (src/views/pfs-footer.ts) under the site footer. */
footer.pfs-footer {
--pfs-footer-muted: var(--muted-foreground);
border-top-color: var(--border);
}

/* Two rows: the popular skills, then the links people use. */
.footer-skills {
gap: 0.5rem 0.9rem;
}
Expand Down
2 changes: 1 addition & 1 deletion web/public/sw.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
* drifted, which is the only version of this rule that survives contact.
*/

const VERSION = '4442cc3d';
const VERSION = 'b264b667';
const SHELL = `shell-${VERSION}`;
const ASSETS = ['/assets/app.css', '/assets/tokens.css', '/assets/icon.svg'];

Expand Down
Loading