~bigbes/sr-ht-spec · events

p0temtp83arjq4808vssin5tm5htk01p · 74 rows

idissue_idevent_typeactorold_valuenew_valuecommentcreated_at
019f95fc-b75e-7b00-979a-510d501bbb9fspec-ejq.2createdEugene BlikhNULL2026-07-25T00:16:35Z
019f9913-3831-7bd7-8876-d352b2460c79spec-by6.3.5createdEugene BlikhNULL2026-07-25T14:40:01Z
019fcf65-3a8e-744d-9748-ad204c4a6fcdspec-by6.4createdEugene BlikhNULL2026-08-05T03:49:05Z
019fcf78-95f1-756a-8df8-b30a581fbdc2spec-by6.5createdEugene BlikhNULL2026-08-05T04:10:14Z
019fcf79-fe91-74f9-aa65-e68d2fe89309spec-by6.3.5closedEugene BlikhClosedNULL2026-08-05T04:11:46Z
019fcf84-5f2f-7c77-84e3-c66b4e77685cspec-by6.5closedEugene BlikhClosedNULL2026-08-05T04:23:06Z
019fcf84-a887-7c5c-aa82-d7c11c7fd387spec-by6.4closedEugene BlikhClosedNULL2026-08-05T04:23:25Z
019fcfe1-a1db-7d94-a36f-7dbeac40c1bcspec-ejq.2updatedEugene Blikh{"id":"spec-ejq.2","title":"CI publish task fails: build secret apk-ci-s3 is missing","description":"Every recent builds.sr.ht run fails at the publish task while every other task passes. Confirmed on jobs #244 (e97532c), #245 (2dc6b71) and #246 (c2dd1ef): 'scss keygen version build' all SUCCESS, 'publish' FAILED. Pre-existing — #244 and #245 predate the Phase 5b work, so no code change caused it. Consequence: the apk never reaches the Garage repo bucket, so apk-mirror on phoebe has nothing new to re-index and the deployed service cannot be upgraded from CI output.","design":"EVIDENCE. .build.yml declares 'secrets: [apk-ci-s3]', documented as a File secret installed at ~/.apk-ci.env carrying APK_CI_S3_ACCESS_KEY / APK_CI_S3_SECRET_KEY for the Garage repo bucket. The publish task's first real line is '. ~/.apk-ci.env'. But 'hut builds secret list' returns exactly four secrets and none is apk-ci-s3: agent1-deploy (SSH key), bencher-api-key, s3-cache-key-secret, s3-cache-key-id. So the file the task sources is never installed.\n\nNOT VERIFIED: the exact failure text. The raw log endpoint (https://builds.srht.bigb.es/query/log/246/publish/log) needs a Bearer token, and reading hut's credential file was correctly refused, so the diagnosis rests on the secret list plus the manifest rather than on the log line itself. Read the log to confirm before acting.\n\nTWO POSSIBILITIES, needs the owner to distinguish:\n1. The secret was deleted or never created — fix is to create a File secret named apk-ci-s3 at ~/.apk-ci.env (mode 600) holding the two S3 keys.\n2. builds.sr.ht resolves manifest secrets by UUID, not by name — fix is to replace the name with the secret's UUID in .build.yml.\n\nSAME BUG IN THE SIBLING: ~/data/home/sourcehut-compare/.build.yml carries a byte-identical secrets block, so compare.sr.ht's publish is broken the same way and both fix together.","acceptance_criteria":"A push to master produces a build whose publish task succeeds and uploads the .apk to the Garage repo bucket; apk-mirror on phoebe re-indexes it within 15 minutes.","status":"open","priority":2,"issue_type":"bug","owner":"bigbes@gmail.com","created_at":"2026-07-24T21:16:35Z","created_by":"Eugene Blikh","updated_at":"2026-07-24T21:16:35Z"}{"notes":"DIAGNOSIS RESOLVED 2026-08-05, still blocked on the owner.\n\nPossibility 2 (builds.sr.ht resolves manifest secrets by UUID only) is RULED OUT. buildsrht/manifest.py parses each secrets: entry as a UUID first and, on failure, treats it as a 3-512 character name and looks it up by name. So '- apk-ci-s3' in the manifest is valid as written; nothing in .build.yml needs changing.\n\nPossibility 1 confirmed: 'hut builds secret list' still returns exactly four secrets (agent1-deploy, bencher-api-key, s3-cache-key-secret, s3-cache-key-id) and none is apk-ci-s3. The secret was never created or was deleted.\n\nFailure mechanism, derived rather than read from the log: the task preamble is 'set -xe' and publish's first real line is '. ~/.apk-ci.env'. A missing file makes '.' exit non-zero and set -e kills the task. That reproduces the observed signature exactly - scss/keygen/version/build green, publish red - and matches build #250 (cc90b4a) as well as #247 (61515a5), so the port to the line-numbered diff did not change it.\n\nFIX, both steps need the owner:\n1. Garage, on the host that has the CLI: 'garage key create apk-ci' then 'garage bucket allow --read --write repo --key apk-ci'. No --owner: publish only uploads and never deletes. Check first whether the key behind the existing s3-cache-key-* secrets already has write on the repo bucket.\n2. Register a File secret on builds.srht.bigb.es (web form or GraphQL - 'hut builds secret' is list/share only, it cannot create): name apk-ci-s3, path /home/build/.apk-ci.env, mode 600, contents two lines APK_CI_S3_ACCESS_KEY=... and APK_CI_S3_SECRET_KEY=... . Absolute path rather than ~/.apk-ci.env because the worker writes the literal string it was given; /home/build is the build user's home, so the manifest's '. ~/.apk-ci.env' still resolves. Mode 600 rather than the 644 the existing s3-cache-key-* secrets use: this is a key, not an identifier.\n\nSecrets are account-level, so the same one also fixes sourcehut-compare, whose manifest carries the identical block."}NULL2026-08-05T06:04:58Z
019fcfe8-8394-769f-9863-afe001048233spec-ejq.2closedEugene BlikhOwner created the File secret apk-ci-s3 (/home/build/.apk-ci.env, mode 600) on builds.srht.bigb.es; 'hut builds secret list' now shows it. Resubmit of #250 as build #251 on the same commit cc90b4a: SUCCESS, all five tasks green including publish. VERIFIED: publish runs under 'set -e' and its body is a loop of 'rclone copyto' with an echo per file, so any failed upload would have exited non-zero and failed the task. A green publish is therefore evidence the .apk reached repo/alpine/v3.22/bigbes/x86_64/ — specsrht-0.0.78-r0.apk for this commit. NOT VERIFIED from here: the apk-mirror re-index on phoebe, the second half of the acceptance criteria. s3.bigb.es is not reachable anonymously from this workstation and phoebe host access is blocked (spec-ar4). If the package turns out not to be installable, that is apk-mirror's problem rather than this repo's and wants its own bead. The manifest needed no change: '- apk-ci-s3' resolves by name, as the diagnosis note records. The same account-level secret should also unblock sourcehut-compare, whose .build.yml carries the identical block — its next build will show it.NULL2026-08-05T06:12:29Z
019fcfe9-e73a-7edc-8c59-98f8b2382d45spec-rsbcreatedEugene BlikhNULL2026-08-05T06:14:00Z
019fcfe9-f99d-71f4-9311-f54c432ab69cspec-rsbclaimedEugene Blikh{"id":"spec-rsb","title":"CLI: specsrht token create|list|revoke","description":"db.Store has the whole agent-token lifecycle (CreateAgentToken, ListAgentTokens, RevokeAgentToken, GenerateToken/HashToken) but nothing calls it: no CLI subcommand and no web page. A freshly deployed instance therefore has no way to issue the credential the agent write plane (REST PUT and mcpsrv spec_propose) requires, short of hand-writing an INSERT with a sha256 hash. Add a 'token' admin subcommand next to 'space', in the same shape: load config, open the pool, run, exit.","acceptance_criteria":"specsrht token create \u003cname\u003e mints a token, stores only its hash, and prints the plaintext once; specsrht token list shows id/name/created/revoked; specsrht token revoke \u003cid\u003e stamps it revoked; usage errors are one clear line; unit tests cover argument parsing and row formatting","status":"open","priority":2,"issue_type":"feature","owner":"bigbes@gmail.com","created_at":"2026-08-05T03:14:01Z","created_by":"Eugene Blikh","updated_at":"2026-08-05T03:14:01Z"}{"assignee":"Eugene Blikh","status":"in_progress"}NULL2026-08-05T06:14:05Z
019fcfef-8f21-7196-a3ab-faabe432786dspec-ejq.2updatedEugene Blikh{"id":"spec-ejq.2","title":"CI publish task fails: build secret apk-ci-s3 is missing","description":"Every recent builds.sr.ht run fails at the publish task while every other task passes. Confirmed on jobs #244 (e97532c), #245 (2dc6b71) and #246 (c2dd1ef): 'scss keygen version build' all SUCCESS, 'publish' FAILED. Pre-existing — #244 and #245 predate the Phase 5b work, so no code change caused it. Consequence: the apk never reaches the Garage repo bucket, so apk-mirror on phoebe has nothing new to re-index and the deployed service cannot be upgraded from CI output.","design":"EVIDENCE. .build.yml declares 'secrets: [apk-ci-s3]', documented as a File secret installed at ~/.apk-ci.env carrying APK_CI_S3_ACCESS_KEY / APK_CI_S3_SECRET_KEY for the Garage repo bucket. The publish task's first real line is '. ~/.apk-ci.env'. But 'hut builds secret list' returns exactly four secrets and none is apk-ci-s3: agent1-deploy (SSH key), bencher-api-key, s3-cache-key-secret, s3-cache-key-id. So the file the task sources is never installed.\n\nNOT VERIFIED: the exact failure text. The raw log endpoint (https://builds.srht.bigb.es/query/log/246/publish/log) needs a Bearer token, and reading hut's credential file was correctly refused, so the diagnosis rests on the secret list plus the manifest rather than on the log line itself. Read the log to confirm before acting.\n\nTWO POSSIBILITIES, needs the owner to distinguish:\n1. The secret was deleted or never created — fix is to create a File secret named apk-ci-s3 at ~/.apk-ci.env (mode 600) holding the two S3 keys.\n2. builds.sr.ht resolves manifest secrets by UUID, not by name — fix is to replace the name with the secret's UUID in .build.yml.\n\nSAME BUG IN THE SIBLING: ~/data/home/sourcehut-compare/.build.yml carries a byte-identical secrets block, so compare.sr.ht's publish is broken the same way and both fix together.","acceptance_criteria":"A push to master produces a build whose publish task succeeds and uploads the .apk to the Garage repo bucket; apk-mirror on phoebe re-indexes it within 15 minutes.","notes":"DIAGNOSIS RESOLVED 2026-08-05, still blocked on the owner.\n\nPossibility 2 (builds.sr.ht resolves manifest secrets by UUID only) is RULED OUT. buildsrht/manifest.py parses each secrets: entry as a UUID first and, on failure, treats it as a 3-512 character name and looks it up by name. So '- apk-ci-s3' in the manifest is valid as written; nothing in .build.yml needs changing.\n\nPossibility 1 confirmed: 'hut builds secret list' still returns exactly four secrets (agent1-deploy, bencher-api-key, s3-cache-key-secret, s3-cache-key-id) and none is apk-ci-s3. The secret was never created or was deleted.\n\nFailure mechanism, derived rather than read from the log: the task preamble is 'set -xe' and publish's first real line is '. ~/.apk-ci.env'. A missing file makes '.' exit non-zero and set -e kills the task. That reproduces the observed signature exactly - scss/keygen/version/build green, publish red - and matches build #250 (cc90b4a) as well as #247 (61515a5), so the port to the line-numbered diff did not change it.\n\nFIX, both steps need the owner:\n1. Garage, on the host that has the CLI: 'garage key create apk-ci' then 'garage bucket allow --read --write repo --key apk-ci'. No --owner: publish only uploads and never deletes. Check first whether the key behind the existing s3-cache-key-* secrets already has write on the repo bucket.\n2. Register a File secret on builds.srht.bigb.es (web form or GraphQL - 'hut builds secret' is list/share only, it cannot create): name apk-ci-s3, path /home/build/.apk-ci.env, mode 600, contents two lines APK_CI_S3_ACCESS_KEY=... and APK_CI_S3_SECRET_KEY=... . Absolute path rather than ~/.apk-ci.env because the worker writes the literal string it was given; /home/build is the build user's home, so the manifest's '. ~/.apk-ci.env' still resolves. Mode 600 rather than the 644 the existing s3-cache-key-* secrets use: this is a key, not an identifier.\n\nSecrets are account-level, so the same one also fixes sourcehut-compare, whose manifest carries the identical block.","status":"closed","priority":2,"issue_type":"bug","owner":"bigbes@gmail.com","created_at":"2026-07-24T21:16:35Z","created_by":"Eugene Blikh","updated_at":"2026-08-05T03:12:30Z","closed_at":"2026-08-05T03:12:30Z","close_reason":"Owner created the File secret apk-ci-s3 (/home/build/.apk-ci.env, mode 600) on builds.srht.bigb.es; 'hut builds secret list' now shows it. Resubmit of #250 as build #251 on the same commit cc90b4a: SUCCESS, all five tasks green including publish.\n\nVERIFIED: publish runs under 'set -e' and its body is a loop of 'rclone copyto' with an echo per file, so any failed upload would have exited non-zero and failed the task. A green publish is therefore evidence the .apk reached repo/alpine/v3.22/bigbes/x86_64/ — specsrht-0.0.78-r0.apk for this commit.\n\nNOT VERIFIED from here: the apk-mirror re-index on phoebe, the second half of the acceptance criteria. s3.bigb.es is not reachable anonymously from this workstation and phoebe host access is blocked (spec-ar4). If the package turns out not to be installable, that is apk-mirror's problem rather than this repo's and wants its own bead.\n\nThe manifest needed no change: '- apk-ci-s3' resolves by name, as the diagnosis note records. The same account-level secret should also unblock sourcehut-compare, whose .build.yml carries the identical block — its next build will show it."}{"notes":"RE-INDEX VERIFIED 2026-08-05, the half the close reason left open.\n\nChecked through repo.bigb.es, the public mirror apk-mirror builds from the Garage repo bucket (URL documented in the APKBUILD header; s3.bigb.es itself resolves to 192.168.88.18 and is only reachable from the LAN, which is why the first attempt to verify failed).\n\n spec.sr.ht-0.0.78-r0.apk 200 content-length 16059260 last-modified 03:09:39 GMT\n APKINDEX.tar.gz 200 last-modified 03:15:00 GMT\n index entry: P:spec.sr.ht V:0.0.78-r0 A:x86_64 S:16059260\n\nThe size in the index matches the object byte for byte, and 0.0.78 is 'git rev-list --count cc90b4a' — the commit build #251 ran on. The index was rebuilt 5.5 minutes after the upload, inside the 15-minute window the acceptance criteria name. Both halves of the criteria are therefore met.\n\nCorrection to the close reason: the package is named spec.sr.ht-0.0.78-r0.apk, not specsrht-0.0.78-r0.apk — pkgname in APKBUILD is spec.sr.ht. The specsrht spelling 404s."}NULL2026-08-05T06:20:11Z
019fcff2-24b3-749f-ae45-0a4e0290db20spec-ovocreatedEugene BlikhNULL2026-08-05T06:23:00Z
019fcff2-3b94-734b-b114-447be71fc954spec-ovoclaimedEugene Blikh{"id":"spec-ovo","title":"CLI: specsrht doc propose — open a proposal from files on the host","description":"The two agent write surfaces (REST PUT, mcpsrv spec_propose) are remote and need a bearer token. When the operator and the documents are already on the host, that token is ceremony: the process can open Postgres and the bare repos directly. Add 'specsrht doc propose ~owner/space \u003cfile\u003e...' calling service.Propose with a constructed agent principal, so the shared layer still owns If-Match, provenance, the branch cut and the auto-merge gate.","acceptance_criteria":"doc propose opens a proposal from local files and prints proposal id, branch, base and URL; --as overrides the in-space path; --proposal adds to an open proposal; --base defaults to the approved head; provenance (--agent/--session) is recorded like a remote agent's; flags parse before, after and between positionals","status":"open","priority":2,"issue_type":"feature","owner":"bigbes@gmail.com","created_at":"2026-08-05T03:23:01Z","created_by":"Eugene Blikh","updated_at":"2026-08-05T03:23:01Z"}{"assignee":"Eugene Blikh","status":"in_progress"}NULL2026-08-05T06:23:06Z
019fd003-5f06-7cb2-bce6-6226878c13e7spec-ejq.3createdEugene BlikhNULL2026-08-05T06:41:49Z
01a01173-8ed1-71f7-b94b-a3e8fbd7140cspec-e4pcreatedEugene BlikhNULL2026-08-17T23:39:41Z
01a01173-e6b9-71bd-a36d-b08c986805dcspec-tafcreatedEugene BlikhNULL2026-08-17T23:40:03Z
01a01173-e993-74e9-9e13-1cc36d2ddd2dspec-0m2createdEugene BlikhNULL2026-08-17T23:40:04Z
01a01173-ec23-7042-9554-f2bbbbe3a9aaspec-jo9createdEugene BlikhNULL2026-08-17T23:40:04Z
01a01173-ee79-7ea2-9385-22ef6666d885spec-17screatedEugene BlikhNULL2026-08-17T23:40:05Z
01a01173-f127-725d-8faa-46397b29194bspec-4ehcreatedEugene BlikhNULL2026-08-17T23:40:06Z
01a01173-f36a-73b5-b9c4-1349b4691cd6spec-cnkcreatedEugene BlikhNULL2026-08-17T23:40:06Z
01a01173-f5a4-73ef-891a-9f3b806dbdcespec-oqkcreatedEugene BlikhNULL2026-08-17T23:40:07Z
01a01173-f7b4-7c73-b603-864a02bc2943spec-arvcreatedEugene BlikhNULL2026-08-17T23:40:07Z