Commits in Cantara/source-code-portal
Up to date
feat(tools): one tool catalogue for agents, the assistant on it, and the tools API (W1)oranheim1,190 additions and 402 deletions in 16 files9c6861f
docs(plan): agents, one tool catalogue for the assistant, MCP and WebMCP (W1 to W3), before embeddingoranheim122 additions and 4 deletions in 5 files3d5ed1a
docs(operator): Private Packagist signs in with Basicoranheim4 additions and 3 deletions in 1 file0157d35
docs(operator): every package manager's registry url, with NuGet, RubyGems and Packagist examplesoranheim7 additions and 1 deletion in 1 file31fe029
tag v2.2.1docs(changelog): 2.2.1oranheim19 additions and 0 deletions in 1 filebfa3a79
feat(packages): providers for NuGet, RubyGems and Packagistoranheim535 additions and 15 deletions in 14 files6411bfb
docs(packages): private registries in the operator guide, the security model, the plugin and the Guideoranheim103 additions and 12 deletions in 9 filesc5d3d53
feat(packages): private registries with Basic, bearer or header credentials sent only to their own URL, and registries on a private networkoranheim315 additions and 47 deletions in 14 files1e4eea8
feat(manifests): Cargo.toml and pyproject.toml, and the documents for every package manageroranheim355 additions and 33 deletions in 13 files3f618ea
feat(packages): providers for PyPI, Cargo, Go, Swift and CocoaPods, and Gradle builds for Mavenoranheim1,120 additions and 10 deletions in 12 files67d8bd0
feat(packages): a private repository's packages are never named to a public registry, and providers can read the repository's tagsoranheim101 additions and 23 deletions in 5 filesf821e5e
docs(packages): published packages for operators, repository owners, the API and the security modeloranheim43 additions and 7 deletions in 7 files8f37f3c
feat(web): the release chip shows a published package where there is no GitHub release, and the repository page lists its packagesoranheim149 additions and 4 deletions in 10 files16f820b
feat(packages): wired in, a published package counts as a release, and the tests' registries never dialoranheim195 additions and 25 deletions in 19 filese3e387d
feat(packages): package providers for Maven and npm, a shared registry client and the lookup joboranheim1,589 additions and 2 deletions in 9 filese8126d8
refactor(egress): the public-only transport is core, for images and registriesoranheim105 additions and 82 deletions in 8 files1c94226
docs(plan): published packages, a provider per package manager (R1 to R4)oranheim148 additions and 2 deletions in 5 filesd026c94
feat(web): a licence shows its short name and links its text, and the open issues link to GitHuboranheim98 additions and 15 deletions in 3 files1a64190
feat(github): trees stream, and the manifests search keeps only its directories and walks a truncated treeoranheim307 additions and 37 deletions in 12 filesda13210
feat(commits): a read that fails part-way keeps what it read, and a failing branch never costs the default oneoranheim209 additions and 25 deletions in 4 filescf994df
feat(sync): a new release runs failed jobs again at its first startoranheim99 additions and 4 deletions in 6 files30c1c5a
style(guide): format the reordered sectionsoranheim6 additions and 1 deletion in 1 file6090b98
docs(guide): connect GitHub first, then scp.yaml with the App, the groups, check and runoranheim76 additions and 67 deletions in 2 files330e14f
docs(guide): token_file is the portal's GitHub token, not a sign-inoranheim5 additions and 3 deletions in 1 file42249f1
docs(guide): access tokens first, in three steps, then single sign-onoranheim45 additions and 13 deletions in 2 files3af4bc3
docs(guide): connecting GitHub with an App, and sign-in and private repositories: who sees what, and the providersoranheim125 additions and 8 deletions in 2 files38e1b6a
feat(guide): two parts for readers and operators, a contents sidebar, pictures at their own size and the findings' icon legendoranheim413 additions and 218 deletions in 20 filesb820fa1
feat(web): a health score is a ring and a finding its kind's icon on its severity's tile, the points in its hintoranheim250 additions and 63 deletions in 8 files081535d
docs(plan): embedding the portal in other sites, queued after the next release, on the roadmaporanheim100 additions and 4 deletions in 5 filesbc7e94e
feat(web): the viewer is one account menu after the reader's icons, and the latest commits' fold sits at its title's endoranheim211 additions and 101 deletions in 7 files5d101ad
docs(guide): pictures and alt texts for the default lens of every kindoranheim28 additions and 28 deletions in 16 files6fbed4f
feat(dashboard): a new reader counts every kind of work, automation included, until they narrow it in Settingsoranheim50 additions and 43 deletions in 19 files30d0ef5
feat(commits): the commit list is read as a stream in bounded memory, a message of any length keeping its start and its trailersoranheim733 additions and 16 deletions in 10 files2fb0e33
fix(github): a response larger than the conditional cache's 1 MiB is read whole, not cut into malformed JSONoranheim32 additions and 3 deletions in 2 filesdfd07ac
feat(web): the header reads Guide, theme, Settings, and the theme is a menu with the chosen mode checkedoranheim182 additions and 36 deletions in 7 filese69ddcb
tag v2.2.0fix(dashboard): after a return to the built-in layout the design mode says so, not that a layout was savedoranheim4 additions and 4 deletions in 2 files0b06c2c
docs(changelog): 2.2.0oranheim20 additions and 0 deletions in 1 file8d7cff0
feat(dashboard): the latest commits are a side panel beside the products that folds away and resizesoranheim306 additions and 48 deletions in 11 files148d945
fix(web): a signal's hint is its name and at most three signals, no proseoranheim73 additions and 83 deletions in 8 files45bdf18
feat(web): every colour signal explains itself at once in a card, on hover, focus or a taporanheim490 additions and 77 deletions in 12 filesa1d3771
fix(web): the header's right reads Guide, Settings, then the themeoranheim8 additions and 8 deletions in 4 filesda0d83e
feat(web): the theme, Settings and the Guide sit together at the header's right, as iconsoranheim135 additions and 33 deletions in 7 files0dfef13
fix(commits): classify each commit once per snapshot; a narrow lens no longer dates members by their oldest commitoranheim106 additions and 75 deletions in 10 files326b8d9
feat(guide): a Getting started page explains the signals with screenshots, and a Claude Code plugin helps operators run a releaseoranheim1,513 additions and 4 deletions in 37 files3983c44
feat(dashboard): automation counts as work when the reader chooses it: the work that counts is any of by hand, with AI and by automationoranheim439 additions and 241 deletions in 34 filescbf6085
feat(dashboard): the reader chooses the work that counts (both, by hand, with AI) in a new Settings pageoranheim779 additions and 207 deletions in 37 filesf1ef995
feat(commits): tell AI-assisted and agents' commits from people's own and from CI automationoranheim522 additions and 70 deletions in 29 files8316a5e
fix(dashboard): the fleet map's about panel above the cards, the ranges compactoranheim11 additions and 9 deletions in 4 files5f338e7
feat(dashboard): people by their GitHub login, the full name on hoveroranheim77 additions and 22 deletions in 13 files00f414d
feat(dashboard): the fleet map's legend says its time ranges, and an about panel explains the restoranheim106 additions and 10 deletions in 4 files0d74c01
feat(layout): page layouts in a file-system store and a design mode for adminsoranheim1,902 additions and 111 deletions in 33 filesff0e7d8
feat(dashboard): a landing page of signals: the fleet map, distilled products and people's commitsoranheim1,227 additions and 318 deletions in 30 files9d99db8
feat(catalog): an unclaimed matcher for the repositories no other group selectsoranheim86 additions and 20 deletions in 9 filese0380d9
docs: the production setup for any organisation, no particular deploymentoranheim25 additions and 25 deletions in 4 filesb4dde8e
docs(plan): L1 landing page of signals and L2 layouts with a design modeoranheim103 additions and 3 deletions in 5 filese20e67c
tag v2.1.0docs(changelog): 2.1.0 (#11)with ExoCortextotto22 additions and 1 deletion in 1 file00d2304
build(deps): Go 1.27.3 (GO-2026-6809, crypto/x509) (#12)with ExoCortextotto3 additions and 3 deletions in 3 files26e3574
build(web): @axe-core/playwright 4.14.0, jsdom 30.1.3, vitest 5.0.5 (#10)oranheim48 additions and 47 deletions in 2 files0ff283b
build(web): next 16.4.1, react 19.3.1, @tanstack/react-query 5.104.3 (#7)oranheim79 additions and 79 deletions in 2 files0aa1382
test(load): twice the p99 bound under -race, where shared CI runners sit at the old oneoranheim3 additions and 0 deletions in 1 file6b599e0
docs: the security model for portals of private repositories; H1 doneoranheim76 additions and 7 deletions in 8 files377fe6c
feat(catalog): a listing that misses a repository confirms it 30 seconds lateroranheim66 additions and 7 deletions in 10 files1fb9db0
feat(config): warn when a trusted proxy range is wider than one network while private repositories are servedoranheim55 additions and 4 deletions in 4 filesed91433
feat(access): an audit line for every request in the private vieworanheim48 additions and 3 deletions in 4 filesc723e9f
feat(catalog): github.sources[].exclude keeps repositories out of the catalogueoranheim71 additions and 10 deletions in 11 files45a3fe1
feat(access): access.require_auth, a portal for signed-in viewers onlyoranheim200 additions and 94 deletions in 11 files3dfe949
test(access): one leak test over every public surface; H1 startedoranheim195 additions and 5 deletions in 6 files9f60331
feat(llms): publish the catalogue as a KCP org hub at /knowledge.yaml (#4)with ExoCortextotto329 additions and 6 deletions in 11 files32f1c59
feat(catalog): the Java portal's addresses redirect to their successorsoranheim171 additions and 1 deletion in 7 filesf032ea6
ci: the workflow header no longer claims a branch protection main does not haveoranheim1 addition and 1 deletion in 1 file5cf1e33
build(deps): goldmark v2, Node 24.22.0, Playwright 1.64.1, distroless digest, Ubuntu 26.04 runners (#6)oranheim74 additions and 76 deletions in 12 files11f2ddc
test(e2e): wait for the selected row before moving on by keyboardoranheim1 addition and 0 deletions in 1 file627a0b1
feat(web): complete breadcrumb trails, a repository under the first of its groups (RepoDetail.group)oranheim84 additions and 24 deletions in 18 files38e3d9d
feat(seo): Open Graph text for link previews; M13 done at what a technical site needsoranheim56 additions and 39 deletions in 8 filesa169069
feat(seo): one page address in Go and the web, JSON-LD graphs with breadcrumbs, and the sitemap and robots.txt from Go with lastmodoranheim855 additions and 131 deletions in 45 files09f46ce
docs: the assistant in the operator and API guides, a production setup for scp.cantara.no; A1 builtoranheim259 additions and 20 deletions in 7 files6cdbf1c
feat(assistant): ask the portal through Anthropic, OpenAI, Gemini, OpenRouter or Ollama with read-only tools over the viewer's view, /ask and the admin provider testoranheim4,747 additions and 31 deletions in 49 filesbe12dad
test(cluster): compare the instances between two equal snapshot versions, not while the leader still publishesoranheim19 additions and 14 deletions in 1 file4f9e062
docs: sign-in and administrators in the operator and API guides; S1 built, A1 in progressoranheim119 additions and 27 deletions in 9 filescea08fd
feat(web): sign in from the header, the /signin page with single sign-on and the token form, the /admin status pageoranheim652 additions and 26 deletions in 24 filesda2981a
feat(auth): sign in through OIDC with PKCE or a bearer token, sealed stateless sessions, the admin role and /api/v1/meoranheim1,973 additions and 57 deletions in 23 files790758c
docs(plan): S1 sign-in and admin, A1 assistant: designs adapted from krantho, before M13oranheim168 additions and 4 deletions in 7 files57c7158
feat(commits): numbered pages of a chosen size for the navigator and the timelines, the git graph laid out on the serveroranheim1,539 additions and 865 deletions in 50 files343df9b
feat(web): the commit navigator: a repository's history as a virtualised git graph with labels, filters, keyboard and details; product timelines by dayoranheim1,150 additions and 153 deletions in 29 files7764861
feat(commits): list the default branch first among a history's labels and leave out Snyk's branchesoranheim9 additions and 2 deletions in 3 filesd04dcc4
feat(commits): keep the history of a repository: 500 default-branch commits, the newest branches and tags, in graph order, served by /repos/{owner}/{name}/historyoranheim1,699 additions and 97 deletions in 19 files5a3183c
docs(plan): C1, the commit navigator: product timelines and a git graph per repository, with acceptance criteria; health is builtoranheim86 additions and 6 deletions in 5 filesaf8aa97
feat(web): show the portal's release next to its name in the headeroranheim26 additions and 11 deletions in 6 files340f89c
feat(health): score every repository and weigh each product, with the findings behind the scoreoranheim1,235 additions and 76 deletions in 33 files1332b45
chore: move renovate.json to .github/ and the CLAUDE.md import of AGENTS.md into .claude/CLAUDE.mdoranheim6 additions and 7 deletions in 5 files6f95f9c
build(renovate): patch and minor updates merge themselves once CI is green; major updates wait for revieworanheim34 additions and 4 deletions in 3 files99596cb
feat(web): draw a repository's commits as a git graph, with lanes for branches and mergesoranheim353 additions and 24 deletions in 22 filesb5995f8
fix(webui): restart the web UI server when its bundle is rebuilt; Next.js writes the same .next/BUILD_ID every buildoranheim32 additions and 25 deletions in 3 filesaed3364
fix(web): X-SCP-Build names the running web UI bundle, so a page sees a new version only when the bundle changedoranheim61 additions and 14 deletions in 10 files0e687f7
docs(harness): no local checkout paths in the notesoranheim3 additions and 3 deletions in 3 files398c034
fix(web): the system theme follows the system preference while a page is openoranheim74 additions and 6 deletions in 3 files17e1376
feat(github): list user accounts too: an App's user installation, the token's own account with its private repositories, another user's public onesoranheim273 additions and 53 deletions in 13 filesdc632c5
feat(cli): scp config groups previews the groups on a repository listing; configure-scp skill for the owneroranheim368 additions and 1 deletion in 7 filesaaeb54b
docs: the first release is 2.0.0; later releases bump the patch version unless decided otherwiseoranheim32 additions and 34 deletions in 7 files7d97b58
docs(changelog): 2.1.0 notes for the feature modulesoranheim4 additions and 0 deletions in 1 file0cd9993