We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
feat: consider clearing the catalog cache when `--full-refresh` present
This has come up in slack a bunch of times but most recently in https://meltano.slack.com/archives/C01TCRBBJD7/p1689207554179589

Lots of users run into this where the catalog is being cached so the output theyre seeing is not as expected, we end up recommending that they clear their `.meltano/run/tap-x` directory so it regenerates the catalog. If someone runs with the `--full-refresh` flag its probably because something in the source changed so they need to re-run the replication but the cached catalog is blocking those changes from propogating.


Related to:
- https://github.com/meltano/meltano/issues/6292
- https://github.com/meltano/meltano/issues/6763
- https://github.com/meltano/meltano/issues/2856
- https://github.com/meltano/meltano/issues/2848



--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `src/meltano/cli/__init__.py`
Content:
```
1 """Main entry point for the meltano CLI."""
2 
3 from __future__ import annotations
4 
5 import logging
6 import os
7 import sys
8 import typing as t
9 
10 from meltano.cli import (  # noqa: WPS235
11     add,
12     config,
13     discovery,
14     docs,
15     dragon,
16     elt,
17     environment,
18     hub,
19     initialize,
20     install,
21     invoke,
22     job,
23     lock,
24     remove,
25     run,
26     schedule,
27     schema,
28     select,
29     state,
30     upgrade,
31     validate,
32 )
33 from meltano.cli import compile as compile_module
34 from meltano.cli.cli import cli
35 from meltano.cli.utils import CliError
36 from meltano.cloud.cli import cloud
37 from meltano.core.error import MeltanoError, ProjectReadonly
38 from meltano.core.logging import setup_logging
39 
40 if t.TYPE_CHECKING:
41     from meltano.core.tracking.tracker import Tracker
42 
43 cli.add_command(add.add)
44 cli.add_command(cloud)
45 cli.add_command(compile_module.compile_command)
46 cli.add_command(config.config)
47 cli.add_command(discovery.discover)
48 cli.add_command(docs.docs)
49 cli.add_command(dragon.dragon)
50 cli.add_command(elt.elt)
51 cli.add_command(environment.meltano_environment)
52 cli.add_command(hub.hub)
53 cli.add_command(initialize.init)
54 cli.add_command(install.install)
55 cli.add_command(invoke.invoke)
56 cli.add_command(lock.lock)
57 cli.add_command(remove.remove)
58 cli.add_command(schedule.schedule)
59 cli.add_command(schema.schema)
60 cli.add_command(select.select)
61 cli.add_command(state.meltano_state)
62 cli.add_command(upgrade.upgrade)
63 cli.add_command(run.run)
64 cli.add_command(validate.test)
65 cli.add_command(job.job)
66 
67 # Holds the exit code for error reporting during process exiting. In
68 # particular, a function registered by the `atexit` module uses this value.
69 exit_code: None | int = None
70 
71 atexit_handler_registered = False
72 exit_code_reported = False
73 exit_event_tracker: Tracker | None = None
74 
75 setup_logging()
76 
77 logger = logging.getLogger(__name__)
78 
79 troubleshooting_message = """\
80 Need help fixing this problem? Visit http://melta.no/ for troubleshooting steps, or to
81 join our friendly Slack community.
82 """
83 
84 
85 def handle_meltano_error(error: MeltanoError) -> t.NoReturn:
86     """Handle a MeltanoError.
87 
88     Args:
89         error: The error to handle.
90 
91     Raises:
92         CliError: always.
93     """
94     raise CliError(str(error)) from error
95 
96 
97 def _run_cli():
98     """Run the Meltano CLI.
99 
100     Raises:
101         KeyboardInterrupt: if caught.
102     """
103     try:
104         try:  # noqa: WPS225, WPS505
105             cli(obj={"project": None})
106         except ProjectReadonly as err:
107             raise CliError(
108                 f"The requested action could not be completed: {err}",
109             ) from err
110         except KeyboardInterrupt:  # noqa: WPS329
111             raise
112         except MeltanoError as err:
113             handle_meltano_error(err)
114         except Exception as err:
115             raise CliError(f"{troubleshooting_message}\n{err}") from err
116     except CliError as cli_error:
117         cli_error.print()
118         sys.exit(1)
119 
120 
121 def main():
122     """Entry point for the meltano CLI."""
123     # Mark the current process as executed via the CLI
124     os.environ["MELTANO_JOB_TRIGGER"] = os.getenv("MELTANO_JOB_TRIGGER", "cli")
125     try:
126         _run_cli()
127     finally:
128         global exit_code
129         ex = sys.exc_info()[1]
130         if ex is None:
131             exit_code = 0  # noqa: WPS442
132         elif isinstance(ex, SystemExit):
133             exit_code = 0 if ex.code is None else ex.code  # noqa: WPS442
134         else:
135             exit_code = 1  # noqa: WPS442
136         # Track the exit event now to provide more details via the exception context.
137         # We assume the process will exit practically immediately after `main` returns.
138         if exit_event_tracker is not None:
139             exit_event_tracker.track_exit_event()
140
```

Path: `src/meltano/cli/discovery.py`
Content:
```
1 """Discoverable Plugins CLI."""
2 
3 from __future__ import annotations
4 
5 import typing as t
6 
7 import click
8 
9 from meltano.cli.params import pass_project
10 from meltano.cli.utils import InstrumentedCmd
11 from meltano.core.plugin import PluginType
12 
13 if t.TYPE_CHECKING:
14     from meltano.core.project import Project
15 
16 
17 @click.command(
18     cls=InstrumentedCmd,
19     short_help="List the available plugins in Meltano Hub and their variants.",
20 )
21 @click.argument(
22     "plugin_type",
23     type=click.Choice([*list(PluginType), "all"]),
24     default="all",
25 )
26 @pass_project()
27 def discover(  # noqa: C901
28     project: Project,
29     plugin_type: str,
30 ):
31     """
32     List the available discoverable plugins and their variants.
33 
34     \b\nRead more at https://docs.meltano.com/reference/command-line-interface#discover
35     """
36     if plugin_type == "all":
37         plugin_types = [
38             plugin_type for plugin_type in list(PluginType) if plugin_type.discoverable
39         ]
40     else:
41         plugin_types = [PluginType.from_cli_argument(plugin_type)]
42 
43     for idx, discovered_plugin_type in enumerate(plugin_types):
44         if idx > 0:
45             click.echo()
46 
47         click.secho(f"{str(discovered_plugin_type).capitalize()}", fg="green")
48 
49         try:
50             plugin_type_index = project.hub_service.get_plugins_of_type(
51                 discovered_plugin_type,
52             )
53         except Exception:
54             click.secho(
55                 f"Can not retrieve {discovered_plugin_type} from the Hub",
56                 fg="yellow",
57                 err=True,
58             )
59             continue
60 
61         for plugin_name, plugin in plugin_type_index.items():
62             click.echo(plugin_name, nl=False)
63 
64             if len(plugin.variants) > 1:
65                 click.echo(f", variants: {', '.join(plugin.variant_labels)}")
66             else:
67                 click.echo()
68
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/src/meltano/cli/__init__.py b/src/meltano/cli/__init__.py
--- a/src/meltano/cli/__init__.py
+++ b/src/meltano/cli/__init__.py
@@ -10,7 +10,6 @@
 from meltano.cli import (  # noqa: WPS235
     add,
     config,
-    discovery,
     docs,
     dragon,
     elt,
@@ -44,7 +43,6 @@
 cli.add_command(cloud)
 cli.add_command(compile_module.compile_command)
 cli.add_command(config.config)
-cli.add_command(discovery.discover)
 cli.add_command(docs.docs)
 cli.add_command(dragon.dragon)
 cli.add_command(elt.elt)
diff --git a/src/meltano/cli/discovery.py b/src/meltano/cli/discovery.py
deleted file mode 100644
--- a/src/meltano/cli/discovery.py
+++ /dev/null
@@ -1,67 +0,0 @@
-"""Discoverable Plugins CLI."""
-
-from __future__ import annotations
-
-import typing as t
-
-import click
-
-from meltano.cli.params import pass_project
-from meltano.cli.utils import InstrumentedCmd
-from meltano.core.plugin import PluginType
-
-if t.TYPE_CHECKING:
-    from meltano.core.project import Project
-
-
-@click.command(
-    cls=InstrumentedCmd,
-    short_help="List the available plugins in Meltano Hub and their variants.",
-)
-@click.argument(
-    "plugin_type",
-    type=click.Choice([*list(PluginType), "all"]),
-    default="all",
-)
-@pass_project()
-def discover(  # noqa: C901
-    project: Project,
-    plugin_type: str,
-):
-    """
-    List the available discoverable plugins and their variants.
-
-    \b\nRead more at https://docs.meltano.com/reference/command-line-interface#discover
-    """
-    if plugin_type == "all":
-        plugin_types = [
-            plugin_type for plugin_type in list(PluginType) if plugin_type.discoverable
-        ]
-    else:
-        plugin_types = [PluginType.from_cli_argument(plugin_type)]
-
-    for idx, discovered_plugin_type in enumerate(plugin_types):
-        if idx > 0:
-            click.echo()
-
-        click.secho(f"{str(discovered_plugin_type).capitalize()}", fg="green")
-
-        try:
-            plugin_type_index = project.hub_service.get_plugins_of_type(
-                discovered_plugin_type,
-            )
-        except Exception:
-            click.secho(
-                f"Can not retrieve {discovered_plugin_type} from the Hub",
-                fg="yellow",
-                err=True,
-            )
-            continue
-
-        for plugin_name, plugin in plugin_type_index.items():
-            click.echo(plugin_name, nl=False)
-
-            if len(plugin.variants) > 1:
-                click.echo(f", variants: {', '.join(plugin.variant_labels)}")
-            else:
-                click.echo()

{"golden_diff": "diff --git a/src/meltano/cli/__init__.py b/src/meltano/cli/__init__.py\n--- a/src/meltano/cli/__init__.py\n+++ b/src/meltano/cli/__init__.py\n@@ -10,7 +10,6 @@\n from meltano.cli import (  # noqa: WPS235\n     add,\n     config,\n-    discovery,\n     docs,\n     dragon,\n     elt,\n@@ -44,7 +43,6 @@\n cli.add_command(cloud)\n cli.add_command(compile_module.compile_command)\n cli.add_command(config.config)\n-cli.add_command(discovery.discover)\n cli.add_command(docs.docs)\n cli.add_command(dragon.dragon)\n cli.add_command(elt.elt)\ndiff --git a/src/meltano/cli/discovery.py b/src/meltano/cli/discovery.py\ndeleted file mode 100644\n--- a/src/meltano/cli/discovery.py\n+++ /dev/null\n@@ -1,67 +0,0 @@\n-\"\"\"Discoverable Plugins CLI.\"\"\"\n-\n-from __future__ import annotations\n-\n-import typing as t\n-\n-import click\n-\n-from meltano.cli.params import pass_project\n-from meltano.cli.utils import InstrumentedCmd\n-from meltano.core.plugin import PluginType\n-\n-if t.TYPE_CHECKING:\n-    from meltano.core.project import Project\n-\n-\n-@click.command(\n-    cls=InstrumentedCmd,\n-    short_help=\"List the available plugins in Meltano Hub and their variants.\",\n-)\n-@click.argument(\n-    \"plugin_type\",\n-    type=click.Choice([*list(PluginType), \"all\"]),\n-    default=\"all\",\n-)\n-@pass_project()\n-def discover(  # noqa: C901\n-    project: Project,\n-    plugin_type: str,\n-):\n-    \"\"\"\n-    List the available discoverable plugins and their variants.\n-\n-    \\b\\nRead more at https://docs.meltano.com/reference/command-line-interface#discover\n-    \"\"\"\n-    if plugin_type == \"all\":\n-        plugin_types = [\n-            plugin_type for plugin_type in list(PluginType) if plugin_type.discoverable\n-        ]\n-    else:\n-        plugin_types = [PluginType.from_cli_argument(plugin_type)]\n-\n-    for idx, discovered_plugin_type in enumerate(plugin_types):\n-        if idx > 0:\n-            click.echo()\n-\n-        click.secho(f\"{str(discovered_plugin_type).capitalize()}\", fg=\"green\")\n-\n-        try:\n-            plugin_type_index = project.hub_service.get_plugins_of_type(\n-                discovered_plugin_type,\n-            )\n-        except Exception:\n-            click.secho(\n-                f\"Can not retrieve {discovered_plugin_type} from the Hub\",\n-                fg=\"yellow\",\n-                err=True,\n-            )\n-            continue\n-\n-        for plugin_name, plugin in plugin_type_index.items():\n-            click.echo(plugin_name, nl=False)\n-\n-            if len(plugin.variants) > 1:\n-                click.echo(f\", variants: {', '.join(plugin.variant_labels)}\")\n-            else:\n-                click.echo()\n", "issue": "feat: consider clearing the catalog cache when `--full-refresh` present\nThis has come up in slack a bunch of times but most recently in https://meltano.slack.com/archives/C01TCRBBJD7/p1689207554179589\r\n\r\nLots of users run into this where the catalog is being cached so the output theyre seeing is not as expected, we end up recommending that they clear their `.meltano/run/tap-x` directory so it regenerates the catalog. If someone runs with the `--full-refresh` flag its probably because something in the source changed so they need to re-run the replication but the cached catalog is blocking those changes from propogating.\r\n\r\n\r\nRelated to:\r\n- https://github.com/meltano/meltano/issues/6292\r\n- https://github.com/meltano/meltano/issues/6763\r\n- https://github.com/meltano/meltano/issues/2856\r\n- https://github.com/meltano/meltano/issues/2848\r\n\r\n\n", "before_files": [{"content": "\"\"\"Main entry point for the meltano CLI.\"\"\"\n\nfrom __future__ import annotations\n\nimport logging\nimport os\nimport sys\nimport typing as t\n\nfrom meltano.cli import (  # noqa: WPS235\n    add,\n    config,\n    discovery,\n    docs,\n    dragon,\n    elt,\n    environment,\n    hub,\n    initialize,\n    install,\n    invoke,\n    job,\n    lock,\n    remove,\n    run,\n    schedule,\n    schema,\n    select,\n    state,\n    upgrade,\n    validate,\n)\nfrom meltano.cli import compile as compile_module\nfrom meltano.cli.cli import cli\nfrom meltano.cli.utils import CliError\nfrom meltano.cloud.cli import cloud\nfrom meltano.core.error import MeltanoError, ProjectReadonly\nfrom meltano.core.logging import setup_logging\n\nif t.TYPE_CHECKING:\n    from meltano.core.tracking.tracker import Tracker\n\ncli.add_command(add.add)\ncli.add_command(cloud)\ncli.add_command(compile_module.compile_command)\ncli.add_command(config.config)\ncli.add_command(discovery.discover)\ncli.add_command(docs.docs)\ncli.add_command(dragon.dragon)\ncli.add_command(elt.elt)\ncli.add_command(environment.meltano_environment)\ncli.add_command(hub.hub)\ncli.add_command(initialize.init)\ncli.add_command(install.install)\ncli.add_command(invoke.invoke)\ncli.add_command(lock.lock)\ncli.add_command(remove.remove)\ncli.add_command(schedule.schedule)\ncli.add_command(schema.schema)\ncli.add_command(select.select)\ncli.add_command(state.meltano_state)\ncli.add_command(upgrade.upgrade)\ncli.add_command(run.run)\ncli.add_command(validate.test)\ncli.add_command(job.job)\n\n# Holds the exit code for error reporting during process exiting. In\n# particular, a function registered by the `atexit` module uses this value.\nexit_code: None | int = None\n\natexit_handler_registered = False\nexit_code_reported = False\nexit_event_tracker: Tracker | None = None\n\nsetup_logging()\n\nlogger = logging.getLogger(__name__)\n\ntroubleshooting_message = \"\"\"\\\nNeed help fixing this problem? Visit http://melta.no/ for troubleshooting steps, or to\njoin our friendly Slack community.\n\"\"\"\n\n\ndef handle_meltano_error(error: MeltanoError) -> t.NoReturn:\n    \"\"\"Handle a MeltanoError.\n\n    Args:\n        error: The error to handle.\n\n    Raises:\n        CliError: always.\n    \"\"\"\n    raise CliError(str(error)) from error\n\n\ndef _run_cli():\n    \"\"\"Run the Meltano CLI.\n\n    Raises:\n        KeyboardInterrupt: if caught.\n    \"\"\"\n    try:\n        try:  # noqa: WPS225, WPS505\n            cli(obj={\"project\": None})\n        except ProjectReadonly as err:\n            raise CliError(\n                f\"The requested action could not be completed: {err}\",\n            ) from err\n        except KeyboardInterrupt:  # noqa: WPS329\n            raise\n        except MeltanoError as err:\n            handle_meltano_error(err)\n        except Exception as err:\n            raise CliError(f\"{troubleshooting_message}\\n{err}\") from err\n    except CliError as cli_error:\n        cli_error.print()\n        sys.exit(1)\n\n\ndef main():\n    \"\"\"Entry point for the meltano CLI.\"\"\"\n    # Mark the current process as executed via the CLI\n    os.environ[\"MELTANO_JOB_TRIGGER\"] = os.getenv(\"MELTANO_JOB_TRIGGER\", \"cli\")\n    try:\n        _run_cli()\n    finally:\n        global exit_code\n        ex = sys.exc_info()[1]\n        if ex is None:\n            exit_code = 0  # noqa: WPS442\n        elif isinstance(ex, SystemExit):\n            exit_code = 0 if ex.code is None else ex.code  # noqa: WPS442\n        else:\n            exit_code = 1  # noqa: WPS442\n        # Track the exit event now to provide more details via the exception context.\n        # We assume the process will exit practically immediately after `main` returns.\n        if exit_event_tracker is not None:\n            exit_event_tracker.track_exit_event()\n", "path": "src/meltano/cli/__init__.py"}, {"content": "\"\"\"Discoverable Plugins CLI.\"\"\"\n\nfrom __future__ import annotations\n\nimport typing as t\n\nimport click\n\nfrom meltano.cli.params import pass_project\nfrom meltano.cli.utils import InstrumentedCmd\nfrom meltano.core.plugin import PluginType\n\nif t.TYPE_CHECKING:\n    from meltano.core.project import Project\n\n\n@click.command(\n    cls=InstrumentedCmd,\n    short_help=\"List the available plugins in Meltano Hub and their variants.\",\n)\n@click.argument(\n    \"plugin_type\",\n    type=click.Choice([*list(PluginType), \"all\"]),\n    default=\"all\",\n)\n@pass_project()\ndef discover(  # noqa: C901\n    project: Project,\n    plugin_type: str,\n):\n    \"\"\"\n    List the available discoverable plugins and their variants.\n\n    \\b\\nRead more at https://docs.meltano.com/reference/command-line-interface#discover\n    \"\"\"\n    if plugin_type == \"all\":\n        plugin_types = [\n            plugin_type for plugin_type in list(PluginType) if plugin_type.discoverable\n        ]\n    else:\n        plugin_types = [PluginType.from_cli_argument(plugin_type)]\n\n    for idx, discovered_plugin_type in enumerate(plugin_types):\n        if idx > 0:\n            click.echo()\n\n        click.secho(f\"{str(discovered_plugin_type).capitalize()}\", fg=\"green\")\n\n        try:\n            plugin_type_index = project.hub_service.get_plugins_of_type(\n                discovered_plugin_type,\n            )\n        except Exception:\n            click.secho(\n                f\"Can not retrieve {discovered_plugin_type} from the Hub\",\n                fg=\"yellow\",\n                err=True,\n            )\n            continue\n\n        for plugin_name, plugin in plugin_type_index.items():\n            click.echo(plugin_name, nl=False)\n\n            if len(plugin.variants) > 1:\n                click.echo(f\", variants: {', '.join(plugin.variant_labels)}\")\n            else:\n                click.echo()\n", "path": "src/meltano/cli/discovery.py"}], "after_files": [{"content": "\"\"\"Main entry point for the meltano CLI.\"\"\"\n\nfrom __future__ import annotations\n\nimport logging\nimport os\nimport sys\nimport typing as t\n\nfrom meltano.cli import (  # noqa: WPS235\n    add,\n    config,\n    docs,\n    dragon,\n    elt,\n    environment,\n    hub,\n    initialize,\n    install,\n    invoke,\n    job,\n    lock,\n    remove,\n    run,\n    schedule,\n    schema,\n    select,\n    state,\n    upgrade,\n    validate,\n)\nfrom meltano.cli import compile as compile_module\nfrom meltano.cli.cli import cli\nfrom meltano.cli.utils import CliError\nfrom meltano.cloud.cli import cloud\nfrom meltano.core.error import MeltanoError, ProjectReadonly\nfrom meltano.core.logging import setup_logging\n\nif t.TYPE_CHECKING:\n    from meltano.core.tracking.tracker import Tracker\n\ncli.add_command(add.add)\ncli.add_command(cloud)\ncli.add_command(compile_module.compile_command)\ncli.add_command(config.config)\ncli.add_command(docs.docs)\ncli.add_command(dragon.dragon)\ncli.add_command(elt.elt)\ncli.add_command(environment.meltano_environment)\ncli.add_command(hub.hub)\ncli.add_command(initialize.init)\ncli.add_command(install.install)\ncli.add_command(invoke.invoke)\ncli.add_command(lock.lock)\ncli.add_command(remove.remove)\ncli.add_command(schedule.schedule)\ncli.add_command(schema.schema)\ncli.add_command(select.select)\ncli.add_command(state.meltano_state)\ncli.add_command(upgrade.upgrade)\ncli.add_command(run.run)\ncli.add_command(validate.test)\ncli.add_command(job.job)\n\n# Holds the exit code for error reporting during process exiting. In\n# particular, a function registered by the `atexit` module uses this value.\nexit_code: None | int = None\n\natexit_handler_registered = False\nexit_code_reported = False\nexit_event_tracker: Tracker | None = None\n\nsetup_logging()\n\nlogger = logging.getLogger(__name__)\n\ntroubleshooting_message = \"\"\"\\\nNeed help fixing this problem? Visit http://melta.no/ for troubleshooting steps, or to\njoin our friendly Slack community.\n\"\"\"\n\n\ndef handle_meltano_error(error: MeltanoError) -> t.NoReturn:\n    \"\"\"Handle a MeltanoError.\n\n    Args:\n        error: The error to handle.\n\n    Raises:\n        CliError: always.\n    \"\"\"\n    raise CliError(str(error)) from error\n\n\ndef _run_cli():\n    \"\"\"Run the Meltano CLI.\n\n    Raises:\n        KeyboardInterrupt: if caught.\n    \"\"\"\n    try:\n        try:  # noqa: WPS225, WPS505\n            cli(obj={\"project\": None})\n        except ProjectReadonly as err:\n            raise CliError(\n                f\"The requested action could not be completed: {err}\",\n            ) from err\n        except KeyboardInterrupt:  # noqa: WPS329\n            raise\n        except MeltanoError as err:\n            handle_meltano_error(err)\n        except Exception as err:\n            raise CliError(f\"{troubleshooting_message}\\n{err}\") from err\n    except CliError as cli_error:\n        cli_error.print()\n        sys.exit(1)\n\n\ndef main():\n    \"\"\"Entry point for the meltano CLI.\"\"\"\n    # Mark the current process as executed via the CLI\n    os.environ[\"MELTANO_JOB_TRIGGER\"] = os.getenv(\"MELTANO_JOB_TRIGGER\", \"cli\")\n    try:\n        _run_cli()\n    finally:\n        global exit_code\n        ex = sys.exc_info()[1]\n        if ex is None:\n            exit_code = 0  # noqa: WPS442\n        elif isinstance(ex, SystemExit):\n            exit_code = 0 if ex.code is None else ex.code  # noqa: WPS442\n        else:\n            exit_code = 1  # noqa: WPS442\n        # Track the exit event now to provide more details via the exception context.\n        # We assume the process will exit practically immediately after `main` returns.\n        if exit_event_tracker is not None:\n            exit_event_tracker.track_exit_event()\n", "path": "src/meltano/cli/__init__.py"}, {"content": null, "path": "src/meltano/cli/discovery.py"}]}