Why when changelog is opened does it not display as an org-mode file correctly? It displays the raw contents of the file.
```
(defconst my/sidebar-buffer-name " *my-sidebar*"
  "The name of the buffer for the custom sidebar.")
(defconst my/sidebar-width 30
  "The width in characters for the custom sidebar.")

(defun my/create-changelog-template-file (path project-name)
  "Creates a new changelog.log file at PATH by running `my/insert-timestamp-log-here`."
  (let ((temp-buffer (generate-new-buffer " *temp-changelog*")))
    (unwind-protect
        ;; --- Main body of work (the "protected" form) ---
        (with-current-buffer temp-buffer
          ;; Call the function directly with level 3. No need for `current-prefix-arg`.
          (my/insert-timestamp-log-here 3)
          ;; Now, write the contents of our temporary buffer to the actual file on disk.
          (write-region (point-min) (point-max) path))

      (kill-buffer temp-buffer))))

(defun my/sidebar--setup-buffer ()
  (with-current-buffer (get-buffer-create my/sidebar-buffer-name)
    (let (buffer-read-only)
      (erase-buffer)
      (let* ((project-name (+workspace-current-name))
             (changelog-path (file-name-concat my/org-projects-dir project-name "changelog.org")))

        (if (file-exists-p changelog-path)
            ;; SCENARIO 1: The file already exists. Display it.
            (insert-file-contents changelog-path)

          ;; SCENARIO 2: The file does NOT exist. Ask the user.
          (if (yes-or-no-p (format "Changelog not found for %s. Create it now?" project-name))
              ;; User said "yes"
              (progn
                ;; Create the file using our new template function.
                (my/create-changelog-template-file changelog-path project-name)
                ;; Now that the file is created, display its content.
                (insert-file-contents changelog-path))

            ;; User said "no"
            (insert (format "No changelog found for project: %s" project-name))))))
      (goto-char (point-min))))

(defun my/toggle-right-sidebar ()
  "Toggle a sidebar on the far right of the frame using a side window."
  (interactive)
  (let ((sidebar-window (get-buffer-window my/sidebar-buffer-name)))
    (if (and sidebar-window (window-live-p sidebar-window))
        ;; If the window exists, simply delete it.
        (delete-window sidebar-window)

      ;; --- If the window does not exist, use display-buffer-in-side-window ---
      (let ((sidebar-buffer (get-buffer-create my/sidebar-buffer-name)))
        (display-buffer-in-side-window
         sidebar-buffer
         `((side . right)          ; Place on the right side of the frame.
           (window-width . ,my/sidebar-width) ; Set the width.
           (slot . 0)              ; Use the main slot on that side.
           (window-parameters . ((no-other-window . t) ; Prevent C-x o from leaving it
                                 (mode-line-format . nil)))))) ; Hide modeline
        ;; Call the setup function after the buffer is displayed.
        (my/sidebar--setup-buffer)))))

(defun my/focus-right-sidebar ()
  "If the sidebar is open, move the cursor to it."
  (interactive)
  (let ((sidebar-window (get-buffer-window my/sidebar-buffer-name)))
    (when (and sidebar-window (window-live-p sidebar-window))
      (select-window sidebar-window))))

```