Dashboard › fossilize › Session sf76868b3c16
sf76868b3c1607a9dtask_id: ses_1aee8bcfbffeXAK4XUOdztkNob (for resuming to continue this task if needed) <task_result> Here are the results: **Directories under `/home/byk/Code/` containing "lore" (case-insensitive):** 1. `/home/byk/Code/loreai` 2. `/home/byk/Code/opencode-lore` No directories named `lore`, `lore-ai`, `lore-sdk`, or similar variants were found — only the two listed above. **Repos with a `.craft.yml` file (max depth 2):** 1. `/home/byk/Code/opencode-lore/.craft.yml` 2. `/home/byk/Code/superset/.craft.yml` </task_result>
<path>/home/byk/Code/superset/.craft.yml</path> <type>file</type> <content> 1: minVersion: '2.21.1' 2: changelog: 3: policy: auto 4: versioning: 5: policy: auto 6: artifactProvider: 7: name: github 8: config: 9: artifacts: 10: CI: npm-tarball 11: targets: 12: - name: npm 13: access: public 14: oidc: true 15: - name: github (End of file - total 15 lines) </content>
<path>/home/byk/Code/superset/.github/workflows/release.yml</path>
<type>file</type>
<content>
1: name: Release
2: on:
3: workflow_dispatch:
4: inputs:
5: version:
6: description: Version to release (or "auto")
7: required: false
8: force:
9: description: Force a release even when there are release-blockers
10: type: boolean
11: default: false
12:
13: jobs:
14: release:
15: runs-on: ubuntu-latest
16: name: Release a new version
17: environment: production
18: permissions:
19: contents: write
20: issues: write
21: steps:
22: - uses: actions/create-github-app-token@v3
23: id: app-token
24: with:
25: app-id: ${{ vars.APP_ID }}
26: private-key: ${{ secrets.APP_PRIVATE_KEY }}
27:
28: - uses: actions/checkout@v6
29: with:
30: token: ${{ steps.app-token.outputs.token }}
31: fetch-depth: 0
32:
33: - uses: ...
<path>/home/byk/Code/superset/.github/workflows/publish.yml</path>
<type>file</type>
<content>
1: name: Publish
2: on:
3: issues:
4: types: [labeled]
5:
6: jobs:
7: publish:
8: if: github.event.label.name == 'accepted' && github.event.issue.state == 'open'
9: runs-on: ubuntu-latest
10: name: Publish release
11: environment: production
12: permissions:
13: contents: write
14: id-token: write
15: issues: write
16: timeout-minutes: 15
17: steps:
18: - uses: actions/create-github-app-token@v3
19: id: app-token
20: with:
21: app-id: ${{ vars.APP_ID }}
22: private-key: ${{ secrets.APP_PRIVATE_KEY }}
23:
24: - name: Parse publish request
25: id: inputs
26: env:
27: ISSUE_TITLE: ${{ github.event.issue.title }}
28: run: |
29: # Title format: "publish: owner/repo@VERSION"
30: VERSION=$(echo "$ISSUE_TITLE" | grep -oP '@\K[^\s]+$')
31: ...
Found it — the second repo is opencode-lore, not loreai. Let me read its Craft setup and also the existing fossilize CI workflow to understand what needs to be adapted.
Explore the /home/byk/Code/opencode-lore repository's Craft-based publishing setup. Read these files completely and return their full contents:
Also check if there's a CHANGELOG.md and report its structure.
Return COMPLETE file contents, not summaries.
I'll start by reading the files in parallel where possible, and listing the workflows directory.
could not determine current branch: failed to run git: not on any branch
jj repos don't have a "current branch" in the git sense. Let me use the --admin flag or specify the merge directly:
<path>/home/byk/Code/opencode-lore/.craft.yml</path> <type>file</type> <content> 1: minVersion: '2.21.1' 2: changelog: 3: policy: auto 4: versioning: 5: policy: auto 6: # Custom version bump script — bypasses craft's built-in npm-based auto-bumping 7: # which fails on our `workspace:*` deps. See scripts/bump-version.sh for details. 8: preReleaseCommand: bash scripts/bump-version.sh 9: statusProvider: 10: name: github 11: config: 12: contexts: 13: # Must match the check-run names from ci.yml that produce release artifacts. 14: # Update these if you rename the jobs. 15: - "test" 16: - "Generate Release Patches" 17: artifactProvider: 18: name: github 19: config: 20: artifacts: 21: # CI workflow uploads three artifact groups on release branches: 22: # npm-tarball — workspace .tgz files for npm publish 23: # release-binaries — gzipped standalone CLI binaries per platform 24: # release-patches — delta patches ...
<path>/home/byk/Code/opencode-lore/.github/workflows</path> <type>directory</type> <entries> cch-seed-check.yml ci.yml cleanup-nightlies.yml eval.yml publish.yml release.yml (6 entries) </entries>
<path>/home/byk/Code/opencode-lore/package.json</path>
<type>file</type>
<content>
1: {
2: "name": "lore-monorepo",
3: "private": true,
4: "type": "module",
5: "license": "FSL-1.1-Apache-2.0",
6: "description": "Monorepo root for Lore — three-tier memory architecture",
7: "main": "./packages/opencode/src/index.ts",
8: "exports": {
9: ".": "./packages/opencode/src/index.ts"
10: },
11: "workspaces": [
12: "packages/*"
13: ],
14: "scripts": {
15: "typecheck": "bun --filter '*' typecheck",
16: "test": "bun test",
17: "build": "bun --filter '*' build",
18: "evals": "vitest run --config vitest.evals.config.ts",
19: "postinstall": "bun --filter '@loreai/gateway' build"
20: },
21: "devDependencies": {
22: "@types/bun": "^1.2.0",
23: "esbuild": "^0.25.12",
24: "fast-check": "^4.5.3",
25: "typescript": "^5.8.0",
26: "vitest": "^4.1.7",
27: "vitest-evals": "^0.10.0"
28: },
29: "repository": {
30: "type": ...
/home/byk/Code/opencode-lore/CHANGELOG.md
Now let me read all the workflow files and the CHANGELOG.md:
<path>/home/byk/Code/opencode-lore/.github/workflows/cch-seed-check.yml</path>
<type>file</type>
<content>
1: name: CCH Seed Check
2:
3: on:
4: schedule:
5: # Check every 6 hours for new Claude Code versions
6: - cron: '0 */6 * * *'
7: workflow_dispatch:
8: inputs:
9: force-version:
10: description: 'Force extraction for a specific version (e.g. 2.1.140)'
11: required: false
12: type: string
13:
14: permissions:
15: contents: write
16: pull-requests: write
17:
18: jobs:
19: check-version:
20: runs-on: ubuntu-latest
21: outputs:
22: needs-extraction: ${{ steps.check.outputs.needs-extraction }}
23: latest-version: ${{ steps.check.outputs.latest-version }}
24: missing-versions: ${{ steps.check.outputs.missing-versions }}
25: steps:
26: - uses: actions/checkout@v6
27:
28: - uses: oven-sh/setup-bun@v2
29: with:
30: bun-version: latest
31:
32: - run: bun install
33: ...
<path>/home/byk/Code/opencode-lore/.github/workflows/ci.yml</path>
<type>file</type>
<content>
1: name: CI
2:
3: on:
4: push:
5: branches: [main, 'release/**']
6: pull_request:
7: branches: [main]
8:
9: # packages:write is needed for publish-nightly to push to GHCR
10: permissions:
11: contents: read
12: packages: write
13:
14: env:
15: # Commit timestamp used for deterministic nightly version strings.
16: # Defined at workflow level so all jobs agree on the same value.
17: COMMIT_TIMESTAMP: ${{ github.event.head_commit.timestamp }}
18:
19: jobs:
20: test:
21: runs-on: ubuntu-latest
22: outputs:
23: nightly-version: ${{ steps.nightly.outputs.version }}
24: steps:
25: - uses: actions/checkout@v6
26: with:
27: fetch-tags: true # fetch all tag refs for craft changelog
28:
29: - uses: oven-sh/setup-bun@v2
30: with:
31: bun-version: latest
32:
33: - uses: actions/setup-node@v6
34: ...
<path>/home/byk/Code/opencode-lore/.github/workflows/cleanup-nightlies.yml</path>
<type>file</type>
<content>
1: name: Cleanup Nightly Tags
2:
3: on:
4: schedule:
5: # Every Sunday at 06:00 UTC
6: - cron: "0 6 * * 0"
7: workflow_dispatch:
8:
9: permissions:
10: packages: write
11:
12: jobs:
13: cleanup:
14: name: Prune Old Nightly Tags
15: runs-on: ubuntu-latest
16: steps:
17: - name: Install ORAS CLI
18: run: |
19: VERSION=1.3.1
20: EXPECTED_SHA256="d52c4af76ce6a3ceb8579e51fb751a43ac051cca67f965f973a0b0e897a2bb86"
21: TARBALL="oras_${VERSION}_linux_amd64.tar.gz"
22: curl --retry 3 --retry-delay 5 --retry-all-errors -sfLo "$TARBALL" \
23: "https://github.com/oras-project/oras/releases/download/v${VERSION}/${TARBALL}"
24: echo "${EXPECTED_SHA256} ${TARBALL}" | sha256sum -c -
25: tar -xz -C /usr/local/bin oras < "$TARBALL"
26: rm "$TARBALL"
27:
28: - ...
<path>/home/byk/Code/opencode-lore/.github/workflows/eval.yml</path> <type>file</type> <content> 1: name: Lore Eval Suite 2: 3: on: 4: # Live mode on weekly schedule 5: schedule: 6: - cron: '0 6 * * 1' # Monday 6am UTC 7: 8: # Manual trigger with mode selection 9: workflow_dispatch: 10: inputs: 11: mode: 12: description: 'Eval mode' 13: type: choice 14: options: 15: - fixture 16: - live 17: default: fixture 18: dimensions: 19: description: 'Comma-separated dimensions (or "all")' 20: default: 'all' 21: baselines: 22: description: 'Comma-separated baselines (or empty for defaults)' 23: default: '' 24: 25: jobs: 26: eval-fixture: 27: if: github.event_name == 'workflow_dispatch' && inputs.mode == 'fixture' 28: runs-on: ubuntu-latest 29: timeout-minutes: 15 30: steps: 31: - uses: actions/checkout@v6 32: - uses: oven-sh/setup-bun@v2 33: ...
<path>/home/byk/Code/opencode-lore/.github/workflows/publish.yml</path>
<type>file</type>
<content>
1: name: Publish
2: on:
3: issues:
4: types: [labeled]
5:
6: jobs:
7: publish:
8: if: github.event.label.name == 'accepted' && github.event.issue.state == 'open'
9: runs-on: ubuntu-latest
10: name: Publish release
11: environment: production
12: permissions:
13: contents: write
14: id-token: write
15: issues: write
16: timeout-minutes: 15
17: steps:
18: - uses: actions/create-github-app-token@v3
19: id: app-token
20: with:
21: app-id: ${{ vars.APP_ID }}
22: private-key: ${{ secrets.APP_PRIVATE_KEY }}
23:
24: - name: Parse publish request
25: id: inputs
26: env:
27: ISSUE_TITLE: ${{ github.event.issue.title }}
28: run: |
29: # Title format: "publish: owner/repo@VERSION"
30: VERSION=$(echo "$ISSUE_TITLE" | grep -oP '@\K[^\s]+$')
31: ...
<path>/home/byk/Code/opencode-lore/.github/workflows/release.yml</path>
<type>file</type>
<content>
1: name: Release
2: on:
3: workflow_dispatch:
4: inputs:
5: version:
6: description: Version to release (or "auto")
7: required: false
8: force:
9: description: Force a release even when there are release-blockers
10: type: boolean
11: default: false
12:
13: jobs:
14: release:
15: runs-on: ubuntu-latest
16: name: Release a new version
17: environment: production
18: permissions:
19: contents: write
20: issues: write
21: steps:
22: - uses: actions/create-github-app-token@v3
23: id: app-token
24: with:
25: app-id: ${{ vars.APP_ID }}
26: private-key: ${{ secrets.APP_PRIVATE_KEY }}
27:
28: - uses: actions/checkout@v6
29: with:
30: token: ${{ steps.app-token.outputs.token }}
31: fetch-depth: 0
32:
33: - uses: ...
<path>/home/byk/Code/opencode-lore/CHANGELOG.md</path> <type>file</type> <content> 1: # Changelog 2: ## 0.24.0 3: 4: ### New Features ✨ 5: 6: - Workspace discovery for monorepo support by @BYK in [#451](https://github.com/BYK/loreai/pull/451) 7: 8: ### Bug Fixes 🐛 9: 10: - (ci) Write Craft publish-state file so retries skip already-published targets by @BYK in [#449](https://github.com/BYK/loreai/pull/449) 11: - Detect and recover from stale OAuth credentials in background workers by @BYK in [#454](https://github.com/BYK/loreai/pull/454) 12: - Recover from prompt overflow errors and add safety margins by @BYK in [#452](https://github.com/BYK/loreai/pull/452) 13: 14: ### Internal Changes 🔧 15: 16: - (publish) Finalize Sentry release after publishing by @BYK in [#450](https://github.com/BYK/loreai/pull/450) 17: 18: ## 0.23.0 19: 20: ### New Features ✨ 21: 22: #### Cch 23: 24: - Add seeds for Claude Code up to 2.1.146 by @github-actions in ...
Let me get the rest of the CHANGELOG.md:
<path>/home/byk/Code/opencode-lore/CHANGELOG.md</path> <type>file</type> <content> 662: 663: ### Internal Changes 🔧 664: 665: - (gradient) Batch distillation consumption at turn boundaries by @BYK in [#123](https://github.com/BYK/loreai/pull/123) 666: - Use models.dev unified JSON API for cost data by @BYK in [#143](https://github.com/BYK/loreai/pull/143) 667: - Case 2 (mixed tools) integration tests for recall interception by @BYK in [#141](https://github.com/BYK/loreai/pull/141) 668: - Migrate knowledge entries from AGENTS.md to .lore.md by @BYK in [107346f1](https://github.com/BYK/loreai/commit/107346f1415bea442f636bb85da84e94c014b37b) 669: - Remove gateway observer hooks and dead recorder exports by @BYK in [#130](https://github.com/BYK/loreai/pull/130) 670: - Remove read-time temporal enrichment from distillation prefix by @BYK in [#129](https://github.com/BYK/loreai/pull/129) 671: - Update license to FSL-1.1-Apache-2.0 by @BYK in ...
Here is the complete report of the Craft-based publishing setup for the /home/byk/Code/opencode-lore repository.
/home/byk/Code/opencode-lore/.craft.yml (53 lines)minVersion: '2.21.1'
changelog:
policy: auto
versioning:
policy: auto
# Custom version bump script — bypasses craft's built-in npm-based auto-bumping
# which fails on our `workspace:*` deps. See scripts/bump-version.sh for details.
preReleaseCommand: bash scripts/bump-version.sh
statusProvider:
name: github
config:
contexts:
# Must match the check-run names from ci.yml that produce release artifacts.
# Update these if you rename the jobs.
- "test"
- "Generate Release Patches"
artifactProvider:
name: github
config:
artifacts:
# CI workflow uploads three artifact groups on release branches:
# npm-tarball — workspace .tgz files for npm publish
# release-binaries — gzipped standalone CLI binaries per platform
# release-patches — delta patches from previous stable release
CI:
- npm-tarball
- release-binaries
- release-patches
targets:
# Publish the 4 workspace packages (@loreai/core, @loreai/opencode, @loreai/pi, @loreai/gateway).
# Craft discovers these from the root package.json `workspaces` field and
# auto-generates per-package targets with `includeNames` set to the default
# artifact regex (e.g. `/^loreai-opencode-\d.*\.tgz$/`).
- name: npm
access: public
oidc: true
workspaces: true
# Mirror @loreai/opencode as the legacy `opencode-lore` package name.
# The CI pack step produces `opencode-lore-<version>.tgz` with identical
# content to `loreai-opencode-<version>.tgz` but a different `name` in
# package.json. This is a non-workspace target so Craft doesn't try to
# auto-discover it — we scope it with `includeNames`.
- name: npm
id: opencode-lore
access: public
oidc: true
includeNames: /^opencode-lore-\d.*\.tgz$/
# ...