<feed xmlns='http://www.w3.org/2005/Atom'>
<title>progmaweb, branch ops/schemastore</title>
<subtitle>The site and account service of Progmasoft: a Next.js frontend and an ASP.NET Core API.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/'/>
<entry>
<title>Serve JSON Schemas on schemastore.progmasoft.com</title>
<updated>2026-11-15T12:28:13+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-15T12:28:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=30b799ffe9f67aac0abe9ce8426cec8b2d6163f8'/>
<id>30b799ffe9f67aac0abe9ce8426cec8b2d6163f8</id>
<content type='text'>
schemastore.progmasoft.com/json/ holds the JSON Schemas of Progmasoft's file
formats. The first is progmasoft-cpp-index.json, which describes the
index.json of each folder of guidelines in Progmasoft/progmasoft-cpp: the
language versions with exactly one default, and every document with its
chapter, path and versions.

- ops/schemastore/json: the schemas, under CC0-1.0 (REUSE.toml, the legal
  code in LICENSES/CC0-1.0.txt) so that projects and schema catalogs can copy
  them.
- ops/schemastore/nginx/schemastore.conf: static files from
  /srv/schemastore, GET only, readable from every origin for editors in the
  browser, an hour of caching; everything outside /json/ is 404.
- ops/README.md: the install steps, the SELinux label and the rule that a
  schema which would reject files it accepted before gets a new name.

Live on 91.151.88.130; the progmasoft.com certificate names the host.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01Ji7xZMYjc4zankoc7hGBE1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
schemastore.progmasoft.com/json/ holds the JSON Schemas of Progmasoft's file
formats. The first is progmasoft-cpp-index.json, which describes the
index.json of each folder of guidelines in Progmasoft/progmasoft-cpp: the
language versions with exactly one default, and every document with its
chapter, path and versions.

- ops/schemastore/json: the schemas, under CC0-1.0 (REUSE.toml, the legal
  code in LICENSES/CC0-1.0.txt) so that projects and schema catalogs can copy
  them.
- ops/schemastore/nginx/schemastore.conf: static files from
  /srv/schemastore, GET only, readable from every origin for editors in the
  browser, an hour of caching; everything outside /json/ is 404.
- ops/README.md: the install steps, the SELinux label and the rule that a
  schema which would reject files it accepted before gets a new name.

Live on 91.151.88.130; the progmasoft.com certificate names the host.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01Ji7xZMYjc4zankoc7hGBE1
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove what is left of the former language and its site (#70)</title>
<updated>2026-11-15T10:53:35+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-11-15T10:53:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=1a73486c0f67ddf3bfe3fd01e2258648f81fbb48'/>
<id>1a73486c0f67ddf3bfe3fd01e2258648f81fbb48</id>
<content type='text'>
The dashboard, proxy, documents, issue templates and ops files no longer point at the former language, its site or its repositories. viget.progmasoft.com/api/v1/status answers from the Progmaweb API (5085); the archived website repository is no longer mirrored.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The dashboard, proxy, documents, issue templates and ops files no longer point at the former language, its site or its repositories. viget.progmasoft.com/api/v1/status answers from the Progmaweb API (5085); the archived website repository is no longer mirrored.</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #69 from Progmasoft/fix/git-mirror-mobile</title>
<updated>2026-11-15T09:15:38+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-11-15T09:15:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=251181fa208b1133de8f93a5f5772d1202e1edea'/>
<id>251181fa208b1133de8f93a5f5772d1202e1edea</id>
<content type='text'>
Give git.progmasoft.com a phone layout</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Give git.progmasoft.com a phone layout</pre>
</div>
</content>
</entry>
<entry>
<title>Give git.progmasoft.com a phone layout</title>
<updated>2026-11-15T09:04:44+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-15T09:04:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=cf2b6c972c94c30a5d055ca9e24e81ed6b497ff3'/>
<id>cf2b6c972c94c30a5d055ca9e24e81ed6b497ff3</id>
<content type='text'>
On a phone the mirror pages were drawn 980 px wide and scaled down to
unreadable text (Android Chrome, desktop mode off): head.html had no
viewport meta, so the narrow-screen rules of progmasoft-git.css never
applied.

- head.html declares width=device-width, initial-scale=1.
- Below 720 px the page keeps a 12 px margin, and lists, files, diffs
  and preformatted text scroll inside their own box instead of widening
  the page.

Deployed to the server and checked with Playwright at 390 px (index,
summary, tree, log, file, commit): body text 15 px, no page overflow.

Claude-Session: https://claude.ai/code/session_01Ji7xZMYjc4zankoc7hGBE1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On a phone the mirror pages were drawn 980 px wide and scaled down to
unreadable text (Android Chrome, desktop mode off): head.html had no
viewport meta, so the narrow-screen rules of progmasoft-git.css never
applied.

- head.html declares width=device-width, initial-scale=1.
- Below 720 px the page keeps a 12 px margin, and lists, files, diffs
  and preformatted text scroll inside their own box instead of widening
  the page.

Deployed to the server and checked with Playwright at 390 px (index,
summary, tree, log, file, commit): body text 15 px, no page overflow.

Claude-Session: https://claude.ai/code/session_01Ji7xZMYjc4zankoc7hGBE1
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #67 from Progmasoft/feature/product-catalog-like-apache</title>
<updated>2026-11-14T18:55:43+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-11-14T18:55:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=7a5711ab4687a473738b039dcea9e3dd66e2eb02'/>
<id>7a5711ab4687a473738b039dcea9e3dd66e2eb02</id>
<content type='text'>
Make product.progmasoft.com a catalog like projects.apache.org</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make product.progmasoft.com a catalog like projects.apache.org</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'main' into feature/product-catalog-like-apache</title>
<updated>2026-11-14T13:45:45+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-11-14T13:45:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=189d3c6d4fe99dc9c11bd4d45ef40ddc8b29e799'/>
<id>189d3c6d4fe99dc9c11bd4d45ef40ddc8b29e799</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #68 from Progmasoft/content/no-programming-languages</title>
<updated>2026-11-14T13:45:10+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-11-14T13:45:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=10ab93cd8afbcb775bef7d3c75ab054833a8fbf4'/>
<id>10ab93cd8afbcb775bef7d3c75ab054833a8fbf4</id>
<content type='text'>
Describe Progmasoft without programming languages and compilers</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Describe Progmasoft without programming languages and compilers</pre>
</div>
</content>
</entry>
<entry>
<title>Point product.progmasoft.com/robots.txt at its sitemap; drop unused text</title>
<updated>2026-11-14T13:44:19+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-14T13:44:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=800d828080426f781d374920c5623883844f80ca'/>
<id>800d828080426f781d374920c5623883844f80ca</id>
<content type='text'>
Review of this pull request:

- robots.txt on product.progmasoft.com named the apex sitemap; it names
  https://product.progmasoft.com/sitemap.xml now, as viget names its own.
- details and facts.links were translated in four languages but shown
  nowhere; they are gone.
- Stylelint (Codacy): one header comment block in catalog.css, no type
  qualifier on [aria-current], range notation in its media queries.

Codacy's "object injection" findings are left: every index is a key of a
typed, closed list (ProductSlug, categories, statuses), never input.
Playwright on a production build again: 56 page, language and width
combinations without overflow, console errors or CSP violations.

Claude-Session: https://claude.ai/code/session_01Ji7xZMYjc4zankoc7hGBE1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Review of this pull request:

- robots.txt on product.progmasoft.com named the apex sitemap; it names
  https://product.progmasoft.com/sitemap.xml now, as viget names its own.
- details and facts.links were translated in four languages but shown
  nowhere; they are gone.
- Stylelint (Codacy): one header comment block in catalog.css, no type
  qualifier on [aria-current], range notation in its media queries.

Codacy's "object injection" findings are left: every index is a key of a
typed, closed list (ProductSlug, categories, statuses), never input.
Playwright on a production build again: 56 page, language and width
combinations without overflow, console errors or CSP violations.

Claude-Session: https://claude.ai/code/session_01Ji7xZMYjc4zankoc7hGBE1
</pre>
</div>
</content>
</entry>
<entry>
<title>Describe Progmasoft without programming languages and compilers</title>
<updated>2026-11-14T13:33:47+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-14T13:33:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=638d81dc4d0cfe554ea952cae2f59ac70534976d'/>
<id>638d81dc4d0cfe554ea952cae2f59ac70534976d</id>
<content type='text'>
The footer of every page, the site description and the home page still
said that Progmasoft builds programming-language infrastructure,
languages and compilers. Since Tala and its tools are archived, they
describe what Progmasoft makes now, in all four languages:

- Footer: "Developer tools and data infrastructure built with durable
  contracts."
- Site and home description: build systems, testing tools, an agentic
  IDE and data infrastructure.
- Home hero: build systems, testing tools, agentic development
  environments, data infrastructure and the services around them.
- The area "Languages and compilers" becomes "Data infrastructure"
  (columnar in-memory formats and engines for large data on the JVM);
  "Developer tools" drops language servers for agentic development
  environments.

Claude-Session: https://claude.ai/code/session_01Ji7xZMYjc4zankoc7hGBE1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The footer of every page, the site description and the home page still
said that Progmasoft builds programming-language infrastructure,
languages and compilers. Since Tala and its tools are archived, they
describe what Progmasoft makes now, in all four languages:

- Footer: "Developer tools and data infrastructure built with durable
  contracts."
- Site and home description: build systems, testing tools, an agentic
  IDE and data infrastructure.
- Home hero: build systems, testing tools, agentic development
  environments, data infrastructure and the services around them.
- The area "Languages and compilers" becomes "Data infrastructure"
  (columnar in-memory formats and engines for large data on the JVM);
  "Developer tools" drops language servers for agentic development
  environments.

Claude-Session: https://claude.ai/code/session_01Ji7xZMYjc4zankoc7hGBE1
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix what Playwright found at phone width; keep the header inside it</title>
<updated>2026-11-14T13:31:03+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-14T13:31:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=02b9cd891bdc5e2e2eb6ed4ffe6ef6272ff93b77'/>
<id>02b9cd891bdc5e2e2eb6ed4ffe6ef6272ff93b77</id>
<content type='text'>
Checked in Chromium through Playwright against a production build:
seven catalog pages, four languages, 1366 and 390 pixels wide, with the
console, CSP and horizontal overflow watched.

- The site header was 51 px wider than a 390 px phone on every host
  (progmasoft.com, account, viget and the catalog): the brand, the
  account button and the two preference controls did not fit. Below 480
  px the gaps shrink and the header may wrap to a second line; overflow
  is 0 on all of them now.
- .pm-catalog already named the dashed box of the home page, which
  framed the whole index; the index is .pm-index.
- Phone width: the four numbers sit two by two, the project column of
  the table keeps 200 px, and the index starts closer to the hero.
- A project's description goes into the hero, as before, instead of
  running into the heading of its list.

No console errors, no CSP violations, no overflow on any of the 56 page,
language and width combinations.

Claude-Session: https://claude.ai/code/session_01Ji7xZMYjc4zankoc7hGBE1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Checked in Chromium through Playwright against a production build:
seven catalog pages, four languages, 1366 and 390 pixels wide, with the
console, CSP and horizontal overflow watched.

- The site header was 51 px wider than a 390 px phone on every host
  (progmasoft.com, account, viget and the catalog): the brand, the
  account button and the two preference controls did not fit. Below 480
  px the gaps shrink and the header may wrap to a second line; overflow
  is 0 on all of them now.
- .pm-catalog already named the dashed box of the home page, which
  framed the whole index; the index is .pm-index.
- Phone width: the four numbers sit two by two, the project column of
  the table keeps 200 px, and the index starts closer to the hero.
- A project's description goes into the hero, as before, instead of
  running into the heading of its list.

No console errors, no CSP violations, no overflow on any of the 56 page,
language and width combinations.

Claude-Session: https://claude.ai/code/session_01Ji7xZMYjc4zankoc7hGBE1
</pre>
</div>
</content>
</entry>
</feed>
