How to disable the "Tips for getting started" info?

The pop-up status is saved in your local storage.

You can re-trigger it by clearing your local storage using

localStorage.clear()

I believe it’s found in the intercom object that you can access by

JSON.parse(localStorage.getItem("intercom.intercom-state"))

Okay nevermind it’s found here:

localStorage.getItem("oai/apps/hasSeenOnboarding/1c5554b5-e88e[REDACTED]51892c/chat")

The hash might be unique

So try this:

Object.keys(localStorage).filter(k => k.includes("oai/apps/hasSeen"))

Long story short. There’s something wrong with your localstorage causing it to reset everytime.

I have about 100 chats currently, yes, why?

I thought that it might tell you this if you have no chats as an introduction.

Oh yeah I tried it with a different account with no chats and it still pops up.

Is this a new problem or has this happened since the beginning? I would recommend trying a different device and seeing if the problem persists. If it does then contact OpenAI support.

I’m sorry but I don’t know what to do exactly, I’ve never done that.

No, it since a few days maybe a week or so.

It seems to appear in every browser, I used Firefox, Chrome, Microsoft Edge, Operar, Opera GX and Vivaldi.

Since I have cleared my localstorage I am getting the pop-up everytime now as well :smiling_face_with_tear:

I think there may be something broken? I found it interesting that in the other time I queried the key it came with a hash. Setting it manually works though.

So… I don’t know… Don’t care.

Open your developers tools (F12, click Console tab) and enter this:

localStorage.setItem("oai/apps/hasSeenOnboarding/chat", `"2023-01-26"`)

It will be fixed. You can choose a more recent date. I just used this date because I was looking at my settings on another PC.

Just to confirm (so it doesn’t overwrite and someone goes “WTF it doesn’t work”)

  1. Enter the page
  2. Click “Ok, let’s go” (IMPORTANT, DON’T DO THIS AFTER STEP 3)
  3. Paste the code in, press enter
  4. Refresh the page and it’s gone now

So there’s nothing wrong with your computer.

Anybody else can reproduce this bug by clearing their localStorage. Refresh the page, click OK let’s go, refresh again and it re-appears.

3 Likes

I’ve just cleared my localstorage but its still pops up :upside_down_face:

Never mind, it worked haha.

1 Like

Happy to hear. Happy ChatGPTing

I have the same issue as well. I just recently installed FireFox and I get this pop up a lot. This never happened on Chrome.

Welcome to the community!

Due to this topic already being solved instead of saying you have the same issue, you should instead try the solution: How to disable the "Tips for getting started" info? - #16 by RonaldGRuckus. If the solution does not work you should then continue.

2 Likes

Read the Solution.

It will fix the problem, trust me!

I was switching between browsers and ChatGPT was working fine, it wasn’t until I decided to sync browser data between Waterfox (Browser based on Firefox) and Firefox itself using sync function with my Firefox account.

Waterfox is even more privacy focused than Firefox and a little aggressive, which makes me think that it or privacy/tracker extension might be causing the issue.

Ronald’s solution worked for me on Firefox, haven’t tested other browsers.

Edit: This was meant to be a reply to the new comment saying they just installed Firefox, and suggesting the data sync might be causing the issue. I had imported my data from Chrome browser as well.

This looks really cool. & Open source! Thanks for sharing!

Just wanted to add information regarding this issue.

I had the same problem after a reinstall of windows.

The issue when first loading now is that the localStorage keyname that is set automatically, is now formatted with a hash in it - but it would seem it was lacking that before.

So the original keyname: ‘oai/apps/hasSeenOnboarding/chat’

actually looks like this now:

‘oai/apps/hasSeenOnboarding/321321-321321-321321-321321/chat’

renaming the LS keyname to ‘oai/apps/hasSeenOnboarding/chat’, without the hash resolved the issue.

So somewhere in the past months it seems they’ve pushed an update regarding how to read that keyname+value, but not properly addressing the formatting changes of the keyname they are parsing.

It seems like they have separated it into two parts. One for personal, and one for a Workspace. Possibly for business accounts?

Here’s what I managed to grab for setting the value.

ex = function (e, t) {
      var a = (0, g.useCallback) (function () {
        em.m.setItem(em.F.WorkspaceOnboarding, new Date().toLocaleDateString('en-CA', {
          year: 'numeric',
          month: '2-digit',
          day: '2-digit'
        }), {
          workspaceId: null != t ? t : void 0,
          workspaceScope: e
        })
      }, [
        e,
        t
      ]),
      n = (0, o._) ((0, g.useState) (null), 2),
      s = n[0],
      r = n[1];
      (0, g.useEffect) (function () {
        var a = em.m.getItem(em.F.WorkspaceOnboarding, {
          workspaceScope: e
        });
        a || e !== i.Workspace || (a = em.m.getItem(em.F.WorkspaceOnboarding, {
          workspaceId: null != t ? t : void 0,
          workspaceScope: e
        })),
        r(!!a && a)
      }, [
        e,
        t
      ]);
      var c = (0, g.useCallback) (function () {
        return s ? new Date(!0 === s ? '2022-12-14' : s) : s
      }, [
        s
      ]);
      return (0, g.useMemo) (function () {
        return {
          setHasSeenOnboarding: a,
          getHasSeenOnboardingDate: c
        }
      }, [
        c,
        a
      ])
    };

Then determining if the modal should appear

function eW(e) {
  var t = e.ageVerificationDeadline,
  a = e.showCookieConsentBanner,
  n = e.canManageBrowserStorage,
  s = (0, o._) ((0, g.useState) (0), 2),
  r = s[0],
  l = s[1],
  d = (0, h.ec) (h.F_.workspaceId),
  u = ex(i.Personal).getHasSeenOnboardingDate,
  p = (0, h.ec) (h.F_.isBusinessWorkspace),
  f = ex(i.Workspace, d).getHasSeenOnboardingDate,
  m = 0 === (0, h.hz) ().size ? 'loading' : ee.b.getCookie(ee.c.AgeVerification) || null == t ? 'hide' : 'show',
  x = 0 === (0, h.hz) ().size ? 'loading' : a ? 'show' : 'hide',
  v = (0, h.$T) (),
  b = (0, y.Go) (),
  k = (0, h.ec) (h.F_.hasMultipleWorkspaces) && null == d,
  w = (0, g.useMemo) (function () {
    return [{
      Component: Q,
      getModalState: function () {
        return v ? 'loading' : k ? 'show' : 'hide'
      }
    },
    {
      Component: P,
      getModalState: function () {
        return v ? 'loading' : null !== b ? 'show' : 'hide'
      }
    },
    {
      Component: eu,
      getModalState: function () {
        return x
      }
    },
    {
      Component: eE,
      getModalState: function () {
        if (p) return 'hide';
        var e = u();
        return null === e ? 'loading' : !1 === e ? 'show' : 'hide'
      }
    },
    {
      Component: eT,
      getModalState: function () {
        if (!p) return 'hide';
        var e = f();
        return null === e ? 'loading' : !1 === e ? 'show' : 'hide'
      }
    },
    {
      Component: es,
      getModalState: function () {
        return m
      }
    }
    ]
  }, [
    v,
    k,
    b,
    x,
    p,
    u,
    f,
    m
  ]);
  (0, g.useEffect) (function () {
    w[r] && 'hide' === w[r].getModalState() && l(w.findIndex(function (e) {
      return 'hide' !== e.getModalState()
    }))
  }, [
    r,
    w
  ]);
  var j = w[r];
  if (null == j) return null;
  var M = j.getModalState();
  if ('loading' === M) return null;
  'hide' === M && l(function (e) {
    return e + 1
  });
  var C = w[r].Component;
  return (0, c.jsx) (C, {
    onClose: function () {
      l(function (e) {
        return e + 1
      })
    },
    ageVerificationDeadline: t,
    canManageBrowserStorage: n
  })
}

Either that or shared computers, if two people share the same computer and swap google account it will be a different id on that tip first seen, makes sense if they don’t want subsequent logins to inherit hidden tips etc :smiley: but someone made a goof

1 Like

I believe that for Enterprise accounts they are multiple accounts/workspaces held under the same account. Looking further it seems like the workspaceID for me is just my account ID as a hash.

I think this is the truth :joy: It is accidentally setting the localstorage to indicate that we have seen the “Workplace” onBoarding, and not the “Personal”.

Specifically. It is this part of the code that makes the mistake I believe. It’s a bit hard because of being minified and I am assuming a bit of what the variables are.

Both the personal and workspace is checked, with “t” (or “d” as the workspaceID) being undefined for personal.

  u = ex(i.Personal).getHasSeenOnboardingDate,
  p = (0, h.ec) (h.F_.isBusinessWorkspace),
  f = ex(i.Workspace, d).getHasSeenOnboardingDate,

It’s important to note here that “t” is the variable used to determine if the workspaceId is used

i is an enum defined simply as:

i: {…}
​​
Personal: "chat"
​​
Workspace: "workspace"
ex = function (e, t) {
var a = (0, g.useCallback) (function () {
        em.m.setItem(em.F.WorkspaceOnboarding, new Date().toLocaleDateString('en-CA', {
          year: 'numeric',
          month: '2-digit',
          day: '2-digit'
        }), {
          workspaceId: null != t ? t : void 0,
          workspaceScope: e
        })
      }, [
        e,
        t
      ]),

I set a breakpoint and for some reason it is indeed setting it as a workspace ID and not as personal.

It’s called from here:

function ev(e) {
      var t = e.onClose,
      a = e.scope,
      n = ex(a, (0, h.ec) (h.F_.workspaceId)).setHasSeenOnboarding,
      s = (0, g.useCallback) (function () {
        t(!0),
        n()
      }, [
        t,
        n
      ]);
      return a === i.Personal ? (0, c.jsx) (ey, {
        onSubmit: s
      }) : (0, c.jsx) (ek, {
        onSubmit: s
      })
    }

Specifically:

n = ex(a, (0, h.ec) (h.F_.workspaceId)).setHasSeenOnboarding,

Looks like h.F_.workspaceId should be undefined (to indicate a personal account) but it’s always truthy (I think)

Looks like it is meant to separate between personal and business accounts based on the h.F_ values. So I’m guessing “workspaces” are shared conversations.

F_: {…}
​​​
accountUserId(Y)
businessWorkspace(Y)
businessWorkspaceId(Y)
features(Y)
hasCustomerObject(Y)
hasMultipleWorkspaces(Y)
hasPaidSubscription(Y)
isAdmin(Y)
isBusinessWorkspace(Y)
isOwner(Y)
isPersonalWorkspace(Y)
lastActiveSubscription(Y)
useHasClaimedFreeTrial(Y)
wasPaidCustomer(Y)
workspaceId(Y)
workspaces(Y)

It could also be that they are reading/separating it incorrectly. It’s a function from a different location and I think doing this is fruitless

 s = (0, o._) ((0, g.useState) (0), 2),
  r = s[0],
  l = s[1],

r is always false with the hashed key, but properly returns the date when using the non-hashed version.

I believe it’s either A) They forgot to consider if there’s a hash when checking or B) They are incorrectly adding the hash when it’s a chat and not a workspace. Could even be both A and B. This is not harmonized at all.

So. That was fun. Even if nobody cares and nothing will happen and this bug will probably never get acknowledged. But. Yay…

I could also be wrong here. Still a reactjs newbie.

The strange thing is how they have labelled it as “workspaceOnBoarding” (resolves to WorkspaceOnboarding: "oai/apps/hasSeenOnboarding")which leads me to believe that they want to consolidate the two together but didn’t. Or half-way did. Whatever. :spaghetti:

UPDATE

This has been fixed with some new changes and general cleanup. (Including workspaceOnboarding → Onboarding)

var a = (0, m.useCallback) (function () {
        ef.m.setItem(ef.F.Onboarding, new Date().toLocaleDateString('en-CA', {
          year: 'numeric',
          month: '2-digit',
          day: '2-digit'
        }), {
          workspaceId: null != t ? t : void 0,
          workspaceScope: e
        })
      }, [
        e,
        t
      ]),

from

n = ex(a, (0, h.ec) (h.F_.workspaceId)).setHasSeenOnboarding,

to

s = ex(a, a === i.Workspace ? n : void 0).setHasSeenOnboarding,

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.