Skip to content
This repository was archived by the owner on Feb 1, 2026. It is now read-only.
This repository was archived by the owner on Feb 1, 2026. It is now read-only.

Tag v0.6.2 was force-pushed, breaking trust in release tags #100

@mimosel

Description

@mimosel

Summary

The git tag v0.6.2 was force-pushed to a different commit after initial release, causing users who already had the tag locally to be on an outdated version without any notification or warning.

Environment

  • ELF Version: v0.6.2
  • OS: Windows 11
  • Discovery Date: 2026-01-29

Problem Description

What happened

  1. I installed ELF v0.6.2 and verified I was on the correct tag
  2. Days later, I noticed GitHub showed v0.6.2 was released "10 hours ago"
  3. Comparing local vs remote tag hashes revealed they were different:
Local tag v0.6.2:  c6a95f19febe2057a54978710ef714750d045541
Remote tag v0.6.2: 7c7cc95942bf663aaf42481fe9064d25545f5d65

Commits added after initial tag

4a05771 fix: Remove attribution from documentation and code comments
a32800e feat: Add mid-stream semantic memory with plan mode support (v0.6.2)

The core feature advertised in the v0.6.2 release notes ("Mid-Stream Semantic Memory") was not in the original tag but was added later via force-push.

Impact

  1. Trust violation: Users cannot rely on tags being immutable
  2. Silent version drift: git checkout v0.6.2 gives different code depending on when you fetched
  3. Debugging nightmare: "I'm on v0.6.2" means different things to different users
  4. Feature confusion: Release notes advertise features that weren't in the initial release

Expected Behavior

Git tags should be immutable. Once a tag is pushed:

  • It should never be force-pushed to a different commit
  • Bug fixes should create a new tag (e.g., v0.6.3)
  • If a tag must be corrected, communicate clearly to users

Suggested Fix

  1. Immediate: Document this issue in the release notes
  2. Going forward: Adopt a policy of never force-pushing tags
  3. For fixes: Create patch releases (v0.6.3, v0.6.4) instead of modifying existing tags

Workaround

Users who already have v0.6.2 locally must run:

cd ~/.claude/emergent-learning
git fetch origin --tags --force
git checkout v0.6.2

Additional Context

This issue was discovered when investigating why the "Mid-Stream Semantic Memory" feature (advertised in v0.6.2 release notes) was not working. The feature code simply wasn't present in my local v0.6.2 checkout because my tag pointed to the original commit.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions