- Generate index even when no .org files are found
- Don't halt CLI early when no org files - let pipeline complete
- Index will be empty but present, allowing Quartz to serve something
When CLI options --port/--ws-port were not provided, nil values were
being explicitly passed to Server.start_link, which caused Keyword.get
to return nil instead of the default. Now we only include port options
in the keyword list if they have actual values.