Skip to content

Rename: synthpanel → althing#587

Merged
the-data-viking merged 7 commits into
mainfrom
rename/althing
Jul 20, 2026
Merged

Rename: synthpanel → althing#587
the-data-viking merged 7 commits into
mainfrom
rename/althing

Conversation

@the-data-viking

Copy link
Copy Markdown
Collaborator

SynthPanel → Althing

Following the naming-conflict research and legal clearance, the project ships under its new name: Althing (althing.dev).

What changes

  • Dist / CLI / import module: althing — one word, retiring the synth_panel-vs-synthpanel module split from Document or shim package/module name mismatch for Python entrypoints #509
  • Env vars ALTHING_* (12 vars), with SYNTHPANEL_* honored for one deprecation cycle via a central bridge
  • Site canonicals → althing.dev, _redirects for the renamed blog slug + agent-skills path, index regenerated
  • shim-dist/: transitional PyPI metapackage keeping pip install synthpanel working (depends on althing); publish.yml builds both dists
  • Version 1.6.0 → 1.7.0

Back-compat (removed next major)

  • import synthpanel / import synth_panel — shim modules with DeprecationWarning
  • synthpanel console script — works, prints rename notice
  • SYNTHPANEL_* env vars — bridged with warning

Not changed

  • Historical CHANGELOG entries keep the old name
  • synthbench references untouched

Tests

Full suite: 3470 passed, 0 failed, coverage 87.74%.

Merge sequencing (important)

  1. Before the auto-tag → publish fires, the PyPI pending trusted publisher for althing must be configured (owner DataViking-Tech, repo Althing, workflow publish.yml, environment pypi) — see comment in publish.yml
  2. GitHub repo rename SynthPanel → Althing should happen right before/after merge so the OIDC claims match
  3. SynthBench's rename PR depends on althing existing on PyPI — merge that one after this publishes

🤖 Generated with Claude Code

The project is now Althing (althing.dev). Canonical import module is
althing (one word), retiring the synth_panel/synthpanel split from #509.

- dist/CLI/module: althing; env vars ALTHING_* (SYNTHPANEL_* honored
  with a DeprecationWarning via a central bridge in althing/__init__)
- synthpanel + synth_panel kept as deprecation shim modules (__path__
  redirect + PEP 562 __getattr__ delegation)
- synthpanel console script kept as deprecated alias
- shim-dist/: transitional PyPI metapackage so pip install synthpanel
  keeps working (depends on althing); publish.yml builds both dists
- site: canonical URLs → althing.dev, _redirects for renamed blog slug
  and agent-skills path; agent-skills index regenerated
- version 1.6.0 → 1.7.0 (rename release)
- historical CHANGELOG entries retain the old name

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@the-data-viking the-data-viking added the semver:minor Bump minor version on merge label Jul 20, 2026
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 20, 2026

Copy link
Copy Markdown

Deploying synthpanel with  Cloudflare Pages  Cloudflare Pages

Latest commit: 7ecde2f
Status: ✅  Deploy successful!
Preview URL: https://4f0fe854.synthpanel.pages.dev
Branch Preview URL: https://rename-althing.synthpanel.pages.dev

View logs

)
d = entry.to_yaml_dict()
assert "alignment_error" not in d
assert d["dataset"] == "gss"
assert d["jsd"] == 0.18
assert d["models"] == ["haiku:0.5", "gemini-flash-lite:0.5"]
assert d["methodology_url"].startswith("https://synthpanel.dev")
assert d["methodology_url"].startswith("https://althing.dev")

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ab4b217d18

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread pyproject.toml
"althing.packs.instruments" = ["*.yaml"]
"althing.schemas" = ["*.json"]
"althing.data" = ["*.json"]
"althing.agent_assets" = [

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Package the Althing director skill

Add a skills/althing/*.md package-data glob here. _INSTALL_SKILLS_SKILLS now includes althing in src/althing/cli/commands.py, but this manifest only packages the five named sub-skills; source-tree tests pass because the file exists in the checkout, while an installed wheel lacks agent_assets/skills/althing/SKILL.md, causing althing install-skills to report an error and exit 1.

Useful? React with 👍 / 👎.

Comment on lines 160 to +162
xdg = os.environ.get("XDG_CONFIG_HOME", "").strip()
base = Path(xdg).expanduser() if xdg else Path.home() / ".config"
return base / "synthpanel" / "credentials.json"
return base / "althing" / "credentials.json"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Fall back to the legacy credential store

When upgrading an existing installation that used synthpanel login, credentials remain at ~/.config/synthpanel/credentials.json, but this function now reads only the new Althing path. Users relying on persisted keys therefore immediately receive missing-API-key errors after upgrading; read or migrate the legacy file when the new store is absent for the promised deprecation cycle.

Useful? React with 👍 / 👎.

Comment thread src/althing/mcp/data.py
Comment on lines 38 to 41
def _data_dir() -> Path:
"""Return the root data directory, creating it if needed."""
d = Path(os.environ.get("SYNTH_PANEL_DATA_DIR", "~/.synthpanel")).expanduser()
d = Path(os.environ.get("SYNTH_PANEL_DATA_DIR", "~/.althing")).expanduser()
d.mkdir(parents=True, exist_ok=True)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve access to the legacy data directory

When SYNTH_PANEL_DATA_DIR is unset, existing users' saved results, persona packs, instruments, and attachment references remain under ~/.synthpanel, but the renamed CLI now creates and reads only ~/.althing. As a result, commands such as results list, report, and pack lookup make prior data appear lost after an in-place upgrade; migrate the old directory or use it as a fallback when the new directory has not been initialized.

Useful? React with 👍 / 👎.

openclaw-dv and others added 6 commits July 19, 2026 22:13
…l, E402-clean env bridge, re-rendered site index

- synthbench-contract: install 'synthbench-eval @ git+…' — pip >= 25
  hard-errors when the requested name doesn't match built metadata, and
  the bare 'synthbench' PyPI name belongs to an unrelated project (this
  was a latent break on main, surfaced by the runner's pip upgrade)
- env bridge moved to althing/_compat_env (imported first) so
  __init__ is all-imports and ruff-clean
- site/index.html re-rendered from the j2 template (version 1.7.0)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
server.json, MCP server card, agent-skills index, and site markdown
re-rendered at 1.7.0; CLAUDE.md rename (grep -I had skipped it as
binary during the sweep).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The mechanical rename had collapsed tests/test_synthpanel_shim.py into
self-comparisons (althing vs althing) — rewritten as
tests/test_rename_shims.py covering both legacy aliases: python -m
parity + stderr rename notice, DeprecationWarning on import, __all__
re-export, dotted-path imports, PEP 562 attribute delegation, __path__
shape, and the SYNTHPANEL_* env bridge (incl. explicit-value
precedence).

Shim __path__ now keeps the shim's own directory first so its
__main__.py (which prints the rename notice) isn't shadowed by
althing/__main__.py through the redirect.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
CI runs ruff format --check in addition to ruff check; six files from
the rename (shim mains, _compat_env, rewritten shim tests, and two
sed-touched tests) needed formatting.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
npm/ carries the althing namespace package (published manually as
0.0.1 to claim the name). publish.yml gains a publish-npm job using
npm Trusted Publishing — id-token: write, no token — that skips when
the version is unchanged so Python releases don't fail on the
placeholder.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Resolutions: took main's graceful-degradation semantics for
tests/test_synthesis_failure.py with renamed module paths; renamed
merge-introduced synth_panel/synthpanel references in the #588 test,
docs hint, and CLI hint; noqa'd the intentional en-dash bullet regex
(RUF001 — newer ruff flags it; heals main's currently-red lint).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@the-data-viking
the-data-viking merged commit 83925ec into main Jul 20, 2026
21 checks passed
@the-data-viking
the-data-viking deleted the rename/althing branch July 20, 2026 04:06
the-data-viking added a commit to DataViking-Tech/althing-registry that referenced this pull request Jul 20, 2026
* rename: synthpanel → althing

Companion to DataViking-Tech/Althing#587. Repo renamed to
althing-registry; pack index and docs now reference althing
(pip install althing, ALTHING_REGISTRY_URL, althing.dev).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: rename pack manifests to althing-pack.yaml + regenerate default.json

build_registry.py expects the renamed manifest filename; regenerated
default.json from pack sources so the freshness check passes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: rename icp-synthpanel pack dir to icp-althing (matches renamed pack id)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore: regenerate default.json after pack dir rename

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: OpenClaw <openclaw@dataviking.tech>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
the-data-viking added a commit to DataViking-Tech/SynthBench that referenced this pull request Jul 20, 2026
* rename: update synthpanel references to althing

Companion to DataViking-Tech/Althing#587 (synthpanel → althing).

- provider: module/class renamed to althing/AlthingProvider; 'synthpanel'
  kept as a registry alias and SynthPanelProvider as an import alias;
  CLI fallback tries the althing binary then the legacy synthpanel one;
  direct-API import falls back to pre-rename synth_panel installs
- leaderboard taxonomy: althing/* display entries plus historical
  synthpanel/* alias keys so recorded results keep resolving; display
  names show the new brand for both
- config_id: 'synthpanel' accepted as a runner prefix (historical ids);
  golden test restored to the pre-rename id + new althing golden added
- FINDINGS.md: naming note added; generated sections + leaderboard.json
  regenerated (includes one recomputed SPS per #305 publish policy)
- leaderboard-results/, docs/papers, docs/reports, dated audits: untouched
  (historical record)
- core dependency: synthpanel>=0.2.0 → althing>=1.7.0 (merge AFTER
  althing publishes to PyPI)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore: trigger VRT baseline regeneration

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore: re-trigger CI — althing 1.7.0 now on PyPI

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore(vrt): update baselines via vrt-baseline-update label

* style: ruff format pass (CI also runs ruff format --check)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: OpenClaw <openclaw@dataviking.tech>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: dataviking-infra-terraform[bot] <274205567+dataviking-infra-terraform[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver:minor Bump minor version on merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants