[OMEGA-181] System Versioning#238
Conversation
…ipt now uses describe for accurate version/hash reading, the docker now logs the version on first startup
…rather than logging it during start up
…build and sets it in a file for persistance; version numbers are now sent when confirmed that the connection to the channels are established
|
Tested. Version resolves in Docker (as nobody) and standalone, --version/-v/--help and the in-chat version command all work. The startup version message now fires exactly once. One caveat: it's not guaranteed to be the first message. The send is gated on readyToSend and skipped on the first iteration when the async channel join hasn't completed, so an LLM status line can go out ahead of it. If strict first-message ordering is required, block until the channel is ready before the first cycle instead of skipping. Merge conflict is trivial: only src/channels.metta. main moved the search def into skills.metta where this branch added readyToSend in its place. Keep readyToSend, drop the old search block. |
vsbogd
left a comment
There was a problem hiding this comment.
-
For the sake of this small feature, the PR adds an entire new function to the communication channels API, plus state for storing a parameter indicating whether we've sent the version or not. This adds conflicts with OMEGA-161, and if we merge this, it will need to be reworked right away in the near future. We need to rework it before merge.
-
Even though some infrastructure for adding the version to Docker has been put in place, the Docker images that will be created during the release will not contain the version, because it needs to be specified in the Docker build parameters. This is a problem for people who build the Docker image manually because they need to remember about it. For this version to appear in the release build, a CI change is also required (and testing of the release procedure, of course).
Bottom line: I don't think we can merge and test it today.
@blackhammer116 I see why it is needed in fact, I just think the proper way is to change code of the communication channels to be more reliable in this sense. I.e. |
|
My suggestion about this PR. We have two tasks here:
(a) We are able to show version when user runs standalone application using local Git repo. Current way of getting version seems working and reliable. (b) Second case we need to cover is Docker image where local Git repo index is absent. In such case we could save the version on the Docker image building stage. But this PR proposes passing it via arguments which adds the burden of specifying the argument. I suggest getting the version from the Git tree inside Dockerfile script. The simplest way is adding: RUN git describe --tags >${OMEGACLAW_DIR}/versionBut to make it equal to the version from standalone deployment I suggest rewrite Python function
I would suggest fix it in the communication channel plugins. The issue that message is not delivered when communication channel is not started affects the OmegaClaw right now. And also it can be triggered by temporary broken connection. The proper solution I see is to add the list of messages to be sent (similarly to the Another options which is more aligned with the current IRC/Telegram/Mattermost channels plugin design is to wait for Slack plugin doesn't skip the message if I would prefer this (2) part of the work is done under a separate PR. It should be done and merged first and after that we can proceed with changes for the part (1). |
Description
This PR adds a version command to the OmegaClaw launcher script.
Users can now retrieve the local OmegaClaw version directly from the command line using:
or:
The version is resolved from the local Git repository in the following order:
OmegaClaw unknownif no Git metadata is available.Changes
version()helper function toscripts/omegaclaw.--versionand-vin the command dispatcher.--helpas an alias for-h.Closes #62
How Has This Been Tested?
Tested manually with:
Expected version output format:
If no tag is available, the script falls back to the current commit hash.
Checklist