If a fundamental bug is found in bitcoin does that mean that the only way to patch it would be a hard fork? I'm confused at how this software that only has one version is running for 10 years without even a bug?
If a fundamental bug is found in bitcoin
Bitcoin is mainly two things
A set of Network protocols and associated rules by which Bitcoin wallets can interact with each other and by which mining software can interoperate with other bitcoin software.
A reference implementation of a Bitcoin wallet. This is the "bitcoin core" software application.
Exploitable weaknesses in the network protocols and rules can be fixed by a soft fork which changes or extends the protocols or rules.
this software that only has one version is running for 10 years without even a bug?
See the release notes for bitcoin core
for example, the notes for 14.3 include
Denial-of-Service vulnerability CVE-2018-17144 ——————————-
A denial-of-service vulnerability exploitable by miners has been discovered in Bitcoin Core versions 0.14.0 up to 0.16.2. It is recommended to upgrade any of the vulnerable versions to 0.14.3, 0.15.2 or 0.16.3 as soon as possible.
Other implementations (e.g. Electrum) also have exploitable flaws discovered and fixed from time to time.
It does not necessarily have to be a hard fork.
The only way to update or fix an issue in Bitcoin is to push out updated node software, with an update protocol definition. However, not all changes to the protocol result in a hardfork - many can be, and have been, achieved by way of softforks, which are "backwards compatible" in some ways, allowing nodes running certain previous versions to continue to connect to and participate in the network.
The value overflow incident mentioned in the comments is one such example of a soft fork performed to fix a bug. Segwit is another example of a soft fork, this time used to perform an upgrade. There have been many such events over the last 10 years, and we certainly aren't still running the origin Bitcoin code provided by Satoshi.