Skip to content
Descoped Source Code Portalv2.2.14
PollingSign in

Commits in Cantara/source-code-portal

Up to date
refactor: one portal origin, one JSON body reader, one label type152bd33
fix(webhook,llms,packages): bounded bodies held, no shared cache for Host-derived files, bounded registry hostsd5d005b
fix(auth,assistant): email_verified given as a string; the keep-alive ping ends before the handler returnsc8acdd3
test(untrusted): the format characters as runesb013a4a
fix(untrusted,tools,httpapi): every format character is stripped; schemas Check would skip are refused; one origin computationa359518
fix(cluster,filestore,jsonstream): no lead on an unread state map; a transient read error clears; a surrogate keeps its neighbour953c5bb
fix(github,lru): the conditional cache is keyed by credential and bounded by bytes; the LRU counts every value73e487b
refactor(web): one paging hook for the commits, pull requests and issues lists; one repository queue panel70d3f70
refactor(packages,badges): no release is an explicit error, not nil, nil78b61ed
refactor(web): shared product and repository filter fields, one tile title601c417
refactor(lru): one typed LRU cache for the GitHub transport, the package registries and the image proxy5e7c7d3
refactor(present): split the presentation page into its screen, status, stream and controls248f284
refactor(api): one scope package for the commits, pull requests and issues listingsf64b9b6
perf(web): refresh once per 15 s, keep /me, no prefetch on dense links, read page 2 only when near89baa6b
tag v2.2.4docs(changelog): 2.2.4dfb70ec
feat(present): the pull requests and the issues drawn as the latest commits are, in the side column3c4dbbf
feat(dashboard): the pull requests and the issues sections list the newest first, on the dashboard and /presente2ca9b5
feat(present): the side column in sections: latest commits, pull requests and issues, each hiding; a compact status strip69d6c75
feat(dashboard): the pull requests and the issues load more at the end of their scroll, as the latest commits do2e51d40
feat(dashboard): every side panel section hides by its own panel button; the latest commits first, then pull requests, then issuesb5ceecd
feat(dashboard): the side panel in sections: pull requests, issues and latest commits in thirds, each folding4119629
ci: no run for a change of only documents; the documents a test reads still run it474aeb9
docs: an explicit ask to push directly pushes main itself, an exception to the one-PR ruleeabb8a4
docs: testing WebMCP in Chrome in the operator guide (2.6) and the operator plugin (1.9.1)2f04b3f
docs(guide): try WebMCP in Chrome: the flag, the inspector, a Gemini key, a tool by hand and a prompt7157f8a
docs(design): the terms of the pages built from layouts, the words instructions use06c9c3d
test(features): the switches over MCP: the tools listed, the search's kinds, a switched-off tool refusedbd011c6
Merge #17: switch off the open pull requests or issuesMerge of 2 parents.77e0dde
feat: switch off the open pull requests or issues (features.pulls, features.issues)2642c66
docs(guide): list the App's permissions and events as bullets3573bad
Merge #16: e2e deterministic by constructionMerge of 2 parents.39d0a22
Merge main into e2e-stableMerge of 2 parents.94c9cee
Merge #15: the public cannot tell a portal with private repositories from one withoutMerge of 2 parents.8ed025f
Merge main into security-twin: the CI runner's slack on the time budgetsMerge of 2 parents.c52fdf7
Merge #14: faster, event-driven Go testsMerge of 2 parents.5fc1bc7
Merge #13: fewer webhook events, the security model, e2e without shared-state flakesMerge of 2 parents.d7f0883
test: the load and index size budgets get three times their time on a CI runner, one package at a time: the design's budgets are a developer machine's7b2acad
test(e2e): deterministic by construction: every navigation waits for the page to hydrate, a fresh server every run, no networkidle or sleeps, reduced motion, the time budget alone after everything (P…d981207
test(e2e): wait for the page to answer clicks (html[data-hydrated]) instead of pressing again3fda2cc
fix(access)!: the public cannot tell a portal with private repositories from one without: a twin portal compared word for word over every route, guessed address, tool and MCP; a private push unseen;…80318a4
test: tests wait on what happened, not on time: the web UI supervisor's steps told to its test with short intervals; the load and index size checks run without the race detector (P-75)36c05b6
fix: subscribe only to the webhook events that change what the portal shows: not Issue comment, Check suite or Status, which fire on every comment and CI update (P-73)91fe696
test(e2e): no spec reads what another writes: the tests that change every page (layouts, announcements, a push) run in the project writes after the readers, one at a time; the setup waits for the pul…0c4f60d
docs: commit to main locally only and open one PR per completed feature; CI runs once, on the PR3a0d0d8
docs(security): the App's read-only permissions per feature, what its key can read, read-only towards GitHub and the webhook floor as guarantees32d8693
ci: no service containers: the Hazelcast service is gone, the cluster tests run on the in-memory backend and the real Hazelcast ones only locally (P-72)f0c0e50
feat: the portal says what GitHub must grant each feature and warns when it does not: internal/prereq (read permissions, webhook events), the App's grants from its installations, a token's refusals f…ddc2c69
fix(sync): a job whose events anyone can cause settles: an issue comment, a pull request or a review re-reads a repository at most once a minute, so nobody outside can spend the App's rate limit (P-7…a1e634f
feat: open issues for agents and search: the tool open_issues, the search kind issue (in:issue), an Issues section in a repository's Markdown and /issues in the sitemap; the App's Issues permission a…8a182fa
feat: open issues per repository and where each stands (needs triage, unassigned, assigned) from GitHub's conditional issues listing, pull requests skipped; /api/v1/issues, /issues in the header, the…7990531
fix(web): the commit navigator's keys act on the page itself while its rows are drawn deferred, so no key is lost while they catch up5159bb6
perf(web): the commit navigator renders a page of rows deferred and skips laying out the rows off screen, so 200 rows never make a long task; keys and a move across a page's edge wait for the rows to…22a5f05
feat: open pull requests for agents, search and badges: the tool open_pull_requests, the search kind pull (in:pull), the pulls badges for repositories and groups, a Pull requests section in a reposit…2d402d8
feat(web): open pull requests in the pages: /pulls in the header (whose turn first, the states as filters, works without JavaScript), the telemetry signal, the pulls element on the dashboard and /pre…5f616b1
feat: open pull requests per repository and whose turn each is, from a conditional REST listing and one GraphQL query of what changed; issues counted apart, the findings reviews and updates, /api/v1/…3fd53c0
docs(design): pull requests on the dashboard and /present in the built-in layouts, the cost measured on Cantara, queries sized to the listing, pending checks backed off (P-68)a252bd2
docs(design): open pull requests, whose turn it is: a conditional REST listing then one GraphQL query per changed repository, /pulls and where it shows (PR1 to PR3, P-68)f2fcd2d
feat: commit diff stats (+a −d and a five-block bar) in every commit list, from GitHub's GraphQL API 100 commits a query, kept by SHA, the last 90 days only (D1, P-67)8df3c26
feat(web): the group table's release is the version alone with where it is from in its own column (GitHub, Maven, npm, ...); issues and findings are centred50dc99e
feat(web): the group page's repositories are one table as the dashboard's products: a panel, aligned one-line rows, numbers right, every column sortable, health as ring and level, the status only whe…c15c88e
feat(web): announcements are the dashboard's first row below the header and /present's below its strip; /present follows the reader's theme, a wall alone dark unless chosen (P-66)06947a4
feat(web): announcements sit above the fleet map, right below the fleet's numbers, on the dashboard and /present1904e48
feat: announcements below the fleet on the dashboard and /present, from scp.yaml and the admins (N1, N2, P-65)7a274ab
feat(web): the presentation page's commit subjects link to the commit on GitHub, as the dashboard's dod10a9e2
feat(web): a Present icon in the header beside the theme menu; the presentation page's column header on one line; the guide-page skill and the Guide follow the rules API, the signals, the latest comm…9057340
feat(web): the presentation page splits by its profile, a window on half a monitor is a desk, the good products take richer tiles where there is room, and the shared screens are named (P-64)38ce8c0
feat(web): presentation profiles: Handheld portrait, Handheld landscape, Desk and Wall, each with its own commit column, Desk at 60% (K3, P-64)36bf2c3
feat(web): the latest commits' label opens a dialog of the three kinds of work to show, remembered apart from the work that counts (P-63)37ea7a9
feat(web): the presentation page's commit column scrolls, reads older commits at its end and goes back to the newest after a minutef21ed74
feat(web): the presentation page's freshness says the data's age alone: now, 3m agoba3894d
feat(web): a finding's label is part of its link, and the latest commits read the next page at their end73e7a17
feat(web): the fleet's products as bare outlines, the products before the sync, a cloud for the sync and the commit kinds kept together (P-62)197e571
feat: the pages say what the server does, from its rules; signals count commits, findings lead to their fix (P-62)6d5f72d
feat(web): one list of the fleet's signals for the dashboard and the presentation page (people, AI, automation, active, findings, in sync), the SCP brand linking to the dashboard, the tap bar at the…7f079cd
feat(web): the presentation page's wide tiles mark their level as the fleet map does, with the count, the words in its hint878e86b
feat(web): the presentation page's wide tiles show each finding as its icon and repository, the reason in the icon's hintc290396
fix(web): the presentation page places its tiles as the dense grid does and fills the room a narrowed tile left with good products11875f8
feat(web): the presentation page folds by importance (good first, then the mildest to watch; attention never) and draws the fleet as one dense stripb5f47b0
feat(web): the presentation page's commits show the author's avatar where the column has room, and who beside when, the subject on a line of its own58838ce
feat(web): the presentation page's commit column as wide as its edge is dragged, the signals at its left kept by importance as they narrow, a double tap back to the usual width (P-60)54dfd69
feat(web): the presentation page on a wall: tap bar, wake lock, web app manifest, reloads, burn-in shift, dark by default, design mode (K2)6dac40c
docs: the presentation page in the Guide (with its picture), the operator guide, the API guide and the operators' plugin; K2 donee43f115
feat(web): /present, the fleet on one screen: health map, product tiles that fold, the commit column and the data's freshness (K1)12751af
docs(work): presentation mode for a tablet or a wall (K1, K2), P-595c2ea76
tag v2.2.3docs(changelog): 2.2.38aff419
docs: search in the Guide, the API and operator guides, the security model and the operators' plugin; Q3 doned445fee
feat(web): the search page and the header's search box with suggestions, OpenSearch and the SearchAction (Q3)5a175cd
test(e2e): the sign-in test opens the account menu again while the page hydrates8f476b0
feat(llms): /opensearch.xml, and robots.txt keeps crawlers off the search pages2b2c8ef
feat(search): GET /api/v1/search and /search/suggest, the search tool for the assistant, MCP and WebMCP, status and metrics (Q2)5ffcbca
feat(search): the search index in memory, a segment per repository reused by its content digest (Q1)4b47dcc
feat(snapshot): a content digest per repository, unchanged by a check that found nothing newf7c9be8
docs(design): search over what the portal holds, an in-memory index of a segment per repository (Q1 to Q3)a9c322d
docs(plan): embedding (E1 to E4) dequeued until the owner returns to it; search is nextcf34f9c
tag v2.2.2docs(changelog): 2.2.2bda0290
fix(httpapi): no Permissions-Policy entry for tools, whose default is self already and which Chrome warns about57d0317
feat(web): WebMCP, the portal's tools and the page's own for a browser's agent, and the Guide's agents section (W3)d88e843
docs(plan): W2 done, W3 in progress6fb0ed2
feat(mcp): the tool catalogue at /mcp over the Model Context Protocol, for tokens and the public view (W2)b4d4287
docs(plan): W1 done, W2 in progressc79fa94